Centos 6; 移动mysql.sock后,phpMyAdmin'无法login到MySQL服务器'

我最近把我的mysqldatadir/var/lib/mysql移到了一个新的目录/home/mysql上,这个目录挂载在一个新的硬盘上。

为了整洁起见,我认为将tmpdirsocket放在这个新硬盘上会很好。

一切工作按计划,直到我移动套接字文件。 移动套接字文件可以防止phpMyAdminlogin; 我可以很好地从命令行login,并使用我的web框架,而不是使用phpMyAdmin。

工作configuration和不是的唯一区别是在my.cnf文件中。

加工:

 [mysqld] socket = /var/lib/mysql/mysql.sock ... [client] socket = /var/lib/mysql/mysql.sock 

不:

 [mysqld] socket = /home/mysql/mysql.sock ... [client] socket = /home/mysql/mysql.sock 

假设这是一个权限错误,我检查了每个位置的path:

 drwxr-xr-x. root root var drwxr-xr-x. root root lib drwxr-xr-x mysql mysql mysql srwxrwxrwx mysql mysql mysql.sock drwxr-xr-x. root root home drwxr-xr-x mysql mysql mysql srwxrwxrwx mysql mysql mysql.sock 

所以我猜他们没事。 我错了吗?

我phpMyAdminconfiguration为使用'localhost'我有我的本地networkingIP为服务器(192.168.etc)设置mysql bind-address选项

testing新configuration时,我也重启了httpdmysqld服务器。

我非常乐意将套接字文件保留在原来的位置,假设这不是一个安全/性能问题,但是如果有人能够帮助解决这个问题,我们很乐意知道发生了什么。

除非您使用内置的默认位置,PHP还需要显式configurationMySQL套接字文件的位置在php.ini文件或连接string中…

pdo_mysql.default_socket = /home/mysql/mysql.sock

或取决于您select的API

mysqli.default_socket = /home/mysql/mysql.sock