我的程序在执行mysql_real_query时会出现错误:Lost connection to MySQL server during query
随后就是一大堆的
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) 注:相应的sql语句为select 绝对没有问题。这个错误有时候一个小时就有有时候要过好几天才会出现。
此时查看ps ax |grep mysql已经没有mysql进程。再看mysql对应的log(/var/log/mysqld.log)没有找到为什么为出现这个错误。
所以,有没有哪位知道出现这个问题的原因是什么?这个问题搞了很久都没有搞出来。环境:
CentOS 6.2
glibc 2.12
mysql 5.6.13
随后就是一大堆的
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) 注:相应的sql语句为select 绝对没有问题。这个错误有时候一个小时就有有时候要过好几天才会出现。
此时查看ps ax |grep mysql已经没有mysql进程。再看mysql对应的log(/var/log/mysqld.log)没有找到为什么为出现这个错误。
所以,有没有哪位知道出现这个问题的原因是什么?这个问题搞了很久都没有搞出来。环境:
CentOS 6.2
glibc 2.12
mysql 5.6.13
130909 09:53:06 mysqld_safe Number of processes running now: 0
130909 09:53:06 mysqld_safe mysqld restarted
2013-09-09 09:53:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-09-09 09:53:13 31655 [Note] Plugin 'FEDERATED' is disabled.
2013-09-09 09:53:13 31655 [Note] InnoDB: The InnoDB memory heap is disabled
2013-09-09 09:53:13 31655 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2013-09-09 09:53:13 31655 [Note] InnoDB: Compressed tables use zlib 1.2.3
……
……
我知道mysqld_safe Number of processes running now: 0这个是从mysqld_safe脚本里打印出来的,而mysqld_safe脚本就是发现mysqld进程不在之后才去通过ps ax 看mysql进程的个数。
所以我觉得没法从mysql日志中获得mysql这个进程为什么会挂掉的原因。
2. 检查是否有Login 失败的情况出现?
补充以上两点,都有机会造成的。
wait_timeout和interactive_timeout都是8小时,我的程序有些时候2个小时挂掉,有的甚至一个星期才挂掉,所以应该和这个timeout无关。
1. 我最多只有10条连接,相当于连接池那种感觉
2. 我只有在最开始的时候才login,后面都是在执行query
之前在网上搜过,说有可能是mysql和glibc之间的一个bug,说mysql在登录时,glibc的某些函数和mysql搭配起来使用就会出现这种情况。但是我这个程序里面是登录之后再去执行query才挂的,请问一下您知不知道glibc和mysql在执行正常的query的时候会不会有这种bug.
我之前使用的centos5.6 glibc是2.5的,mysql挂的非常频繁,后来换到环境CentOS6.2 glibc2.12就只发生过一个(程序跑了一个星期后msyql才挂了)。