2018-10-02-mysql-2002错误Can‘t connect to local MySQL server through socket

今天玩mysql的时候遇到了这个问题,其实挺早就看到这个问题,但是只是本机无法登陆,远程还是可以访问,所以之前没解决。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

想了想,先把这行注释掉试试,打开自己的mysql配置文件,把[mysql_safe]下面的socket注释掉,如下

# vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld_safe]
#socket         = /var/run/mysqld/mysqld.sock

然后再次启动mysql,还是没启动起来,查看一下mysql的错误日志,日志的路径就看你的mysql配置文件中的log_error一项

log_error = /var/log/mysql/error.log

打开后,发现其中有几行ERROR,发现说的是mysql在/var/run/mysqld/文件夹下不能创建mysqld.sock.lock文件。那就猜是mysql对于那个文件夹(mysqld)没有权限。

2018-10-02T15:36:57.072472Z 0 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
2018-10-02T15:36:57.072649Z 0 [Note] Server socket created on IP: '0.0.0.0'.
2018-10-02T15:36:57.072822Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-10-02T15:36:57.072966Z 0 [ERROR] Unable to setup unix socket lock file.
2018-10-02T15:36:57.073107Z 0 [ERROR] Aborting

2018-10-02T15:36:57.073246Z 0 [Note] Binlog end
2018-10-02T15:36:57.073426Z 0 [Note] Shutting down plugin 'ngram'

那就给权限吧,执行如下命令给予mysql组权限,还是起不来

# chgrp mysql /var/run/mysqld/

直接把文件的拥有者改成mysql

# chown mysql /var/run/mysqld/

现在这个文件夹的拥有者和所有组都是mysql了

root@iZbp1ccq9xttkzab5d3fc9Z:/var/run# ll
drwxr-xr-x  2 mysql mysql  100 Oct  2 23:48 mysqld/

再启动,就成功了

回过头来想想,又到配置文件中把刚刚注释掉哪行去掉,重启了一下,也成功了。

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock

另:过程中主要用这两个命令来观察mysql是否启动

观察3306端口是否启动
# netstat -tunlp | grep 3306  

观察mysql程序是否启动
# ps -ef | grep mysql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值