这个问题博主是在运营的一个网站上发现的,起因是今早我收到一个朋友的反馈。他说他支付宝付款后没有收到服务通知邮件。然后我连接数据库查看记录后发现他付款是成功的,但是系统没有更新状态。所以接着查看系统日志文件,提示“数据库连接错误”。到这一步,我基本确定是数据库出了问题。
接着博主查看mysql进程,发现数据库在运行,且好久没有重启过。我的网站从数据库读取更新数据一切正常。但是在命令行用mysql连接数据库却出现错误,“Can't connect to local MySQL server through socket '/tmp/mysql.sock'” ,而且在/tmp目录下没有mysql.sock文件。
我试着重启mysql数据库,又出现“Starting MySQL. ERROR! Manager of pid-file quit without updating file.”错误提示。再查看mysql进程,之前运行的mysql还是在运行,重启失败。
那么这个问题是在哪呢?
我又仔细看了下运行的mysql进程,发现log-error日志文件是db_host.err,而db_host是我之前的主机名。因为一般错误日志文件格式是“主机名.err”,所以现在需要把之前运行的mysql结束掉,然后重新运行mysql,再看是不是还会报错。
--log-error=/usr/local/mysql/var/db_host.err --open-files-limit=1000 --pid-file=/usr/local/mysql/var/db_host.pid
结束掉所有mysql进程用killall mysqld,重启后正常,命令行也可以登陆数据库了,运行恢复正常。
总结,原来是修改服务器名的原因!