1. 问题复现
修改mysql配置文件后,重启mysql,本地登录mysqlmysql -u root -p
,结果报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
此时通过添加主机地址可正常访问
mysql -h 127.0.0.1 -u root -p
查看my.cnf,可以发现问题源头,[client]、[mysqld_safe]、[mysqld]中均配置了socket = /var/run/mysqld/mysqld.sock
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
2. 根目录下搜索mysqld.sock
find / -name mysqld.sock
如果能找到mysqld.sock文件,将my.cnf配置文件中的路径改为mysqld.sock文件的路径即可。
3. 重启mysql
使用如下命令重启mysql
service mysql stop
service mysql start
问题解决,可以正常登录