使用mysql -uroot -p连接数据库时,出现

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/run/mysql.sock' (2)
通过

find / -name mysql.sock

 


可以找到/tmp/mysql.sock,但是没有找到

/usr/local/mysql/run/mysql.sock

 


先用

mysql -uroot -p -S /tmp/mysql.sock

 


强制指定使用/tmp/mysql.sock尝试连接,报错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
如下图:


检查错误日志:

grep 'Error' /usr/local/mysql/log/mysql_error.log

 


没有任何输出,自己再仔细查看错误日志,发现全是Note和Warning,并且这些记录和警告与连接无关,后来查了一下,mysql.sock是在mysql启动时生成的一个文件,检查服务状态,并没有启动,重启一下mysql就可以了。

/etc/init.d/mysql.server status
/etc/init.d/mysql.server restart

 


总结:

1、遇到问题一定要沉着冷静。

2、有错误先查看错误日志和错误信息,通过错误信息和错误日志定位问题。

3、服务相关的问题先检查服务状态,可能是服务没有启动,重启服务就可以解决。

4、遇到文件找不到的问题先用find / -name file_name 找一下,可能这个文件不在这个目录下,或者没有在这个目录下生成这个文件,有的时候是权限问题,没有权限生成文件,修改权限或者在root用户下touch /path/to/file/file_name手动创建一个文件。

5、在安装MySQL的时候记得一定要更改所有者。

chown -R root:mysql .
chown -R mysql:mysql data

 


因为连接数据库的时候使用的是mysql组的mysql用户,可能会因为权限问题导致没有办法获取到key。

 


原文链接:https://blog.csdn.net/qq_34266639/java/article/details/80668533

posted on 2020-05-23 22:26  潇潇六月雨  阅读(198)  评论(0)    收藏  举报