关于Can't connect to local MySQL server through socket 'mysql.sock'(2)的解决方案之一

使用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)
如下图:

关于Can't connect to local MySQL server through socket 'mysql.sock'(2)的解决方案之一_第1张图片

检查错误日志:

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

关于Can't connect to local MySQL server through socket 'mysql.sock'(2)的解决方案之一_第2张图片

总结:

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。

你可能感兴趣的:(mysql,问题)