无法连接:无法通过套接字“/var/lib/mysql/mysql.sock”(2)连接到本地MySQL服务器


Could not connect: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

当我通过 php 脚本连接我的数据库时,它显示

Could not connect: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

用户名和密码是正确的。

一些my.cnf

[client]
#password       = your_password
port            = 3306
socket          = /data/mysql/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port            = 3306
socket          = /data/mysql/mysql.sock
skip-external-locking

PS:我把它改成socket = /var/lib/mysql/mysql.sock PHP 脚本仍然说"/var/lib/mysql/mysql.sock"?。 然后运行

  mysqladmin -u root -p status

它显示

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!


service mysqld restart

mysqld: unrecognized service

问:你的 my.conf 还说"/var/lib/mysql/mysql.sock"吗?

问:目录"/var/lib/mysql"是否存在?

问:您的 mysql 用户(或者更好的是 mysql 组(是否具有编写者权限?

如果是这样,请尝试重新启动mysql,看看会发生什么。

补遗:

要尝试的另一件事是创建一个 mysql.sock 并显式授予它权限:

cd /var/lib
mkdir mysql
touch mysql/mysql.sock
chown -R mysql:mysql mysql