mysql_ping连不上的原因
1、MySQL 服务宕了
2、mysql连接超时
即某个mysql长连接很久没有新的请求发起,达到了server端的wait_timeout(默认是28800秒也就是8小时) ,被server强行关闭。并且客户端程序没有通过mysql_option接口设置自动重连,此后再通过这个connection发起查询的时候,就会报错
mysql连接超时的解决方法
1、最好的解决办法是在mysql_real_connect()之后设置MYSQL_OPT_RECONNECT,调用 mysql_options ,将MYSQL_OPT_RECONNECT设置为1:
char value = 1;
mysql_options(mysql, MYSQL_OPT_RECONNECT, &value);
2、也可以在MySQL命令行里通过SET全局变量wait_timeout为一天:
set global wait_timeout=86400;
3、还可以通过修改/etc/my.cnf 配置将wait_timeout改大一点,但也不宜过大
在mysqld中添加如下所示的配置
[mysqld]
wait_timeout=86400
然后重启mysql:service mysql restart