由于MySQL存在问题,我的网站随机崩溃,我无法确定它。首先,崩溃本身很少发生(也许每月一次)所以我无法复制它。因此,我不知道究竟是什么导致了这个问题。
多年前我第一次构建网站时,我使用mysql_调用来连接数据库。我了解了我的方法错误并开始使用PDO。不幸的是,有很多代码使用了mysql_调用,而我还没有找到替换它们中的每一个。所以,我的网站混合了PDO和mysql_调用。
当站点连接到数据库时,它首先调用mysql_connect(),然后通过包装器连接到PDO。
当我使用mysql_connect()
时,我收到的错误发挥作用。我已经挖了日志,我找不到错误的具体原因。一旦发生,它就会崩溃MySQL服务器,从而导致网站崩溃。我甚至不能认为mysql_是问题,因为它甚至在它到达PDO包装器之前就崩溃了。它可能只是一个MySQL连接问题。
我已经做了一些搜索,看起来有些人建议我在my.cnf中修改bind-address
,我已经完成了。
我也浏览了网站并尝试删除尽可能多的mysql_调用。
这是一些示例日志文件输出,其中包含一些信息:
Error connecting to database. Reason: Lost connection to MySQL server at 'reading initial communication packet', system error: 111
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: Creating default object from empty value in database.php on line 89
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Fatal error: Call to a member function setErrorCallbackFunction() on a non-object in database.php on line $
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: Creating default object from empty value in database.php on line 89
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Fatal error: Call to a member function setErrorCallbackFunction() on a non-object in database.php on lin$
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: mysql_connect(): Lost connection to MySQL server at 'reading authorization packet', system error: 0 in $
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: Creating default object from empty value in database.php on line 89
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Fatal error: Call to a member function setErrorCallbackFunction() on a non-object in database.php on line $
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: Creating default object from empty value in database.php on line 89
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Fatal error: Call to a member function setErrorCallbackFunction() on a non-object in database.php on lin$
[Mon Jun 09 13:01:29 2014] [error] [client ****] PHP Warning: mysql_connect(): Lost connection to MySQL server at 'reading authorization packet', system error: 0 in $
非常感谢任何帮助。
答案 0 :(得分:1)
如果MySQL服务器崩溃 ,则此问题是由MySQL守护程序本身而不是您的客户端代码引起的。
它也不是数据库(架构),因为你没有达到这一点。 (成功连接后选择DB)
确保: