MySQL 报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket
1连接报错信息:
[root@master ~]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@master ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@master ~]# mysql -h localhost
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2报错解析:
这是由于我们连接数据库使用的主机名参数为“localhost”,或者未使用主机名参数、服务器默认使用“localhost”做为主机名。 使用主机名参数为“localhost”连接mysql服务端时,mysql客户端会认为是连接本机,所以会尝试以socket文件方式进行连接(socket文件连接方式,比“ip:端口”方式效率更高),这时根据配置文件“/etc/mysql.cnf”的路径,未找到相应的socket文件,就会引发此错误。
3解决方案:
3.1报错修复
由于“socket”文件是由mysql服务运行时创建的,如果提示“ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘***’ (2)”,找不到“socket”文件,我们首先要确认的是mysql服务是否正在运行
3.2检查mysql端口是否打开
[root@master etc]# netstat -antlp
-bash: netstat: command not found (-bash:netstat:找不到命令)
解决方案:
yum install net-tools
[root@master etc]# yum install net-tools
Loaded plugins: fastestmirror
Determining fastest mirrors
出现了小插曲,如果你和我一样查看mysql端口出现以上问题的话可以尝试上面的方案~
回到正题
[root@master etc]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 967/sshd
tcp 0 0 192.168.121.120:22 192.168.121.1:49303 ESTABLISHED 1576/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 967/sshd我在这里的mysql端口并没有开启
mysql开启的端口应该显示3306才对
更改目录所有权:chown -R mysql:mysql /var/lib/mysql
[root@master data]# chown -R mysql:mysql /var/lib/mysql
启动MySql服务:systemctl start mysqld
[root@master data]# systemctl start mysqld
再登陆mysql
[root@master data]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2