PHP站点提示“/var/lib/mysql/mysql.sock”不存在的解决方法

发布时间:2019-11-16编辑:脚本学堂
运行php的站点,提示/var/lib/mysql/mysql.sock不存在,这里分享下我的解决方法,有需要的朋友参考下。

apache/ target=_blank class=infotextkey>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,至少增加(修改)一行
 

复制代码 代码示例:
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下

2、修改连接方式:
指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
 

复制代码 代码示例:
#mysql -h127.0.0.1 -uuser -ppassword

3、创建链接
为 mysql.sock 加个链接,比如说实际的mysql.sock在 /tmp/ 下,则键入命令:
 

复制代码 代码示例:
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

以上三种解决方法,任选其一均可解决问题,完成后重启php、nginx(或apache)即可。