MySQL 的自动断开连接问题
MySQL 会自动断开 IDLE 时间超过 8 小时的数据库连接,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。
有两个办法可以解决这个问题:
第一个办法是修改 MySQL 的配置参数。这个参数的名称是 wait_timeout
,其默认值为 28800(单位秒),刚好就是 8 小时。其意义为关闭一个连接之前在这个连接上等到行动的秒数,也就是说,如果一个连接闲置超过这个选项所设置的秒数,MySQL 会主动断开这个连接。
修改操作:打开/etc/my.cnf,在属性组mysqld下面添加参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000
windows下在my.ini文中增加:
interactive_timeout=28800000
wait_timeout=28800000
有实践表明,没有办法把这个值设置成无限大,即永久。因此如果你无法保证你的应用程序必定在设定的秒数内至少有一次操作,那么最好用第二个方法解决这个问题。
第二个办法是如下修改 JDBC 连接的 URL:
jdbc:mysql://hostaddress
:3306/schemaname
?autoReconnect=true
添加 autoReconnect=true
这个参数,即能解决这个问题。
相关文档:
Hibernate 配置通过c3p0连接MYSQL
** 需要的包: c3p0_versionxx.jar
** hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
&n ......
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec …]
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD INDEX [index_name] (index_col_name,…)
or ADD PRIMARY KEY (index_col_name,&hell ......
最近网站数据量节节攀升,据BD方面通报短期内UV还要上升30%-50%。当前最突出的问题是后台内容审核系统压力太大,已经逐渐力不从心。尽管加了一些硬件但效果并不是太理想,主要还是前一段时间把工作重点都放在前端模块上了。内容管理平台的部分代码没有仔细斟酌。接下来一段时间集中精力优化后台。
首先将多表连查的SQL拿出 ......
1、看机器配置,指三大件:cpu、内存、硬盘
2、看mysql配置参数
3、查系mysql行状态,可以用mysqlreport工具来查看
4、查看mysql的慢查询
依次解决了以上问题之后,再来查找程序方面的问题
my.cnf缓存优化
在 my.cnf 中添加/修改以下选项:
#取消文件系统的外部锁
skip-locking
#不进行域名反解析,注意 ......
1.去Mysql的安装目录下的 bin目录下 运行 MySQLInstanceConfig.exe
在语言设置的页面有三个选项: standard character set
best support for multilingualism
......