连接MySQL失败,errorNo=2002,Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

问题:

在本地使用mysql -uroot -p可以登录mysql

代码运行mysql_real_connect函数,失败返回errorNo=2002(Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))

代码参数为localhost,根据返回错误,可知socket连接失败,排查连接失败的原因

 转载注明出处:https://www.cnblogs.com/linguinost/p/16136298.html

 

解决的办法:

修改/etc/my.cnf文件中sock的路径 

切换root,打开文件:vi /etc/my.cnf

按i进行编辑

根据错误提示路径,将socket=路径改为/var/run/mysqld/mysqld.sock

按esc退出编辑,shift :, wq,回车退出

service mysqld restart

再次尝试

如果使用软链接ln -s 原始sock路径  /var/run/mysqld/mysqld.sock 也可以解决问题,但是我重启后就失效了,以上方法重启后仍然有效

 

参考链接:https://phoenixnap.com/kb/mysql-server-through-socket-var-run-mysqld-mysqld-sock-2

 

posted @ 2022-04-12 17:52  linguinost  阅读(150)  评论(0编辑  收藏  举报