前几天在工作当中,mysql服务器的data目录空间不足,将mysql的存储路径换了一下。

修改/etc/my.cnf后。mysql可以正常启动。

外部应用也能正常连接。后面就没有关注其他得了。

今天有一个5MB的脚本需要执行,在客户端上执行速度太慢,想着在mysql服务器上执行。

在linux服务器上执行  mysql -uroot -proot  后 报了" Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"的错误。 在网上研究了半天,看到一个帖子也说了类似问题,研究了下。

解决方案如下:

1、在服务器查找mysql.sock的位置,

执行命令:find / -name mysql.sock

或者查看/etc/my.cnf文件,其中有一个选项sock  看看这个选项=号后得值

2、修改/etc/my.cnf文件。在文件最后追加

[mysql]
socket=/data/mysql/mysql.sock
 
[client]
socket=/data/mysql/mysql.sock
 
[mysqldump]
socket=/data/mysql/mysql.sock
  
[mysqladmin]
socket=/data/mysql/mysql.sock

然后保存。

3、重新启动mysql服务,执行命令:service mysqld restart

进过上面的步骤问题应该就可以解决了。

原因是由于当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。

这样对应的mysql命令:mysql、mysqldump、mysqladmin命令都解决了报" Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"错误。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐