安装mysql 5.5以上的经常会发现网站访问不到数据库

安装mysql 5.5以上的经常会发现网站访问不到数据库

mysql宕机主要有两个原因:

1.内存被其它进程大量占用,或数据库本身数据量太大导致mysql宕机

2.程序访问mysql后没有执行mysql.close,大量占用资源导致宕机。

群里提出的这个问题主要是mysql5.5以上的,基本上不是mysql宕机。因为5.5以上的数据库会有个链接超时配置。

默认是28800秒也就是8个小时,会断开连接。

解决方案:

1.修改mysql配置。

如果是linux服务器编辑mysql.cnf 执行vi /etc/mysql.cnf

找到[mysqld] 在底下添加

interactive_timeout=28800000

wait_timeout=28800000

多加了三个0 也就是8000个小时。基本就不用考虑连接超时

修改完配置后,记得重启mysql服务。

2.程序方面。

以java程序为例(抱歉只会java)

打开Spring配置文件,修改applicationContext.xml

在datasource bean底下添加

用来指定测试连接所使用的SQL语句。

如果测试发现连接已经close,那么将自动重建连接。

<property name="houseKeepingTestSql">

<value>SELECT 1</value>

</property>

用来指定在使用连接之前要进行测试。

<property name="testBeforeUse">

<value>true</value>

</property>