解决要点:
- my.sock文件路径是否正确
- my.sock配置有两个配置地方 client、mysqld均需配置
- 配置后服务是否重启且成功
- my.sock文件是否有读写执行权限
step1: 编辑my.cnf文件,查看是否有两条my.sock配置
vi /etc/my.cnf
step2: 搜索你机器my.sock文件的路径
find / -name mysql.sock //我的机器/var/lib/mysql/mysql.sock
注意:
之前mac上mysql也遇到过这个问题,是mysql.sock路径不对。
- 有时候mysql安装时直接会产生/tmp/mysql.sock文件,这时不会有此错误
- 有时候mysql安装时没有产生/tmp/mysql.sock文件, 然后运行某条命令(具体命令不记得了,当时未做笔记),他会产生到另一个目录,如`/var/lib/mysql/mysql.sock`,此时需要修改my.cnf配置成这个实际产生的目录
step3: 配置my.sock访问路径
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock //亲测有下面的配置没有这条,不行
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock //亲测 这条注释了 也不会报错
user=mysql
#skip-name-resolve
#skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
step4 重启服务my.cnf配置才会生效
service mysqld restart
step5 登录mysql
mysql
or
mysql -uroot -p123456
show databases;
use mysql;
select host,user,password from user;
quit
如果对您有用,一分一块都是爱❤️