PHP站点提示“/var/lib/mysql/mysql.sock”不存在的解决方法
本文导语: apache服务器环境,运行着php开发的站点,速度突然很慢,连ssh连接缓慢,提示错误: [Type] 无法连接到数据库服务器 [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (13) 类似的问题,出现了无法连接数据库...
apache服务器环境,运行着php开发的站点,速度突然很慢,连ssh连接缓慢,提示错误:
[Type] 无法连接到数据库服务器
[2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (13)
类似的问题,出现了无法连接数据库的问题,服务器依然很慢。
问题分析:
用SSH可以连接到数据库,在本地用工具也可以连接到服务器上的数据库,但是只要是PHP的网站程序都访问不了。
估计也有很多站长同学也会经常性遇到这种问题,对于新手站长,这个问题还真让人迷糊。
这多是由于mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,通过unix socket登录mysql。
那么这个错误就是/var/lib/mysql/下没有mysql.sock 这个文件。
解决办法:
1、修改mysql.sock位置:
创建(修改)文件 /etc/my.cnf,至少增加(修改)一行
[client]
socket = /tmp/mysql.sock
#在这里写上mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2、修改连接方式:
指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
3、创建链接
为 mysql.sock 加个链接,比如说实际的mysql.sock在 /tmp/ 下,则键入命令:
以上三种解决方法,任选其一均可解决问题,完成后重启php、nginx(或apache)即可。