ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

错误信息:

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

出现问题原因:

有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket

mysql.sock 文件有什么用:

mysql 支持 socket 和 TCP/IP 连接。那么 mysql.sock 这个文件有什么用呢?连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。/tmp 文件夹属于临时文件,随时可能被删除。

1.TCP 连接(如果报错 /tmp/mysql.sock,你可以尝试这种方式连接)

mysql -uroot -h 127.0.0.1 -p

2.socket 连接

mysql -uroot -p

解决方式:

添加 [client] 配置项,如下所示

配置前:(配置 [client] 前,会报错'/tmp/mysql.sock' (2))

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# 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

配置后:(配置 [client] 后,重启 mysql服务)

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock(跟这个socket路径一样)
user=mysql
# 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

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

end,本文结束,希望对大家有所帮助!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,出现"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)"错误通常是由于MySQL服务器无法通过指定的套接字连接到本地MySQL服务器引起的。这可能是由于以下原因导致的: 1. MySQL服务器未启动:请确保MySQL服务器已经启动。可以使用以下命令检查MySQL服务器的运行状态: ```shell service mysql status ``` 2. MySQL服务器套接字文件路径不正确:请确保MySQL服务器套接字文件的路径与配置文件中的路径一致。可以使用以下命令查看MySQL服务器套接字文件的路径: ```shell grep "socket" /etc/mysql/my.cnf ``` 3. MySQL服务器套接字文件权限问题:请确保MySQL服务器套接字文件的权限正确。可以使用以下命令更改套接字文件的权限: ```shell sudo chmod 777 /tmp/mysql.sock ``` 4. MySQL服务器配置文件错误:请检查MySQL服务器的配置文件(通常是/etc/mysql/my.cnf)是否正确配置了套接字文件路径。可以使用以下命令编辑配置文件: ```shell sudo nano /etc/mysql/my.cnf ``` 然后找到并修改以下行: ```shell socket = /tmp/mysql.sock ``` 5. MySQL服务器端口被占用:请确保MySQL服务器所使用的端口没有被其他进程占用。可以使用以下命令查看端口占用情况: ```shell sudo netstat -tlnp | grep mysql ``` 如果以上方法都无法解决问题,可能需要重新安装MySQL服务器或者联系系统管理员进行进一步的故障排除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值