我的服务器得到"无法通过socket' /var/run/mysqld/mysqld.sock'连接到本地MySql服务器; (2)&#34 ;.通过命令行连接mysql时出错。
我更改的是将mysql数据目录/套接字移动到新文件夹。
一切正常。我更改了启动脚本my.cnf以反映数据和套接字的新位置。
唯一的问题是如果我只是在命令行上运行mysql,我就得到了这个错误。如果我把-h 127.0.0.1然后一切都好。
知道怎么解决吗?我确信在my.cnf中,所有的客户都是& mysqld部分已更新到新位置。与phpMyAdmin相同,我需要更改为127.0.0.1而不是使用" localhost"否则,我根本无法连接。
答案 0 :(得分:0)
是这条道路 /var/run/mysqld/mysqld.sock 移动的套接字路径的正确路径?
如果没有,那么您将错过更改参数。
您也可以尝试连接socket参数
grep -v '^[[:space:]]*$' foo.txt
BR Chris
答案 1 :(得分:0)
您需要在my.cnf文件的[mysql]部分下添加套接字路径。这是由mysql客户端程序使用的。此更改后重新启动MySQL服务。
例如
[mysql]
socket = <yourpathtosockfile>
答案 2 :(得分:0)
使用[file1] [file2] etc.
在命令行上连接到您的mysql服务器并运行此查询:
-h 127.0.0.1
这将为您提供mysql服务器正在使用的套接字文件的值。接下来,修改您的show global variables where Variable_name = 'socket';
文件并搜索my.cnf
,如果没有找到,您可以添加它。
[client]
如果在全局[client]
socket = <the path you got from above query>
文件中添加这些配置参数后仍然无法正常工作,则表示还有另一个my.cnf
文件覆盖了全局的配置错误的文件。根据您的操作系统,mysql客户端在启动之前读取的my.cnf
文件的路径会有所不同。该列表位于http://dev.mysql.com/doc/refman/5.7/en/option-files.html