MySQL错误,缺少sock,仍然可以连接除命令行以外的所有内容

时间:2016-11-15 15:09:08

标签: mysql ubuntu ubuntu-14.04

尝试通过命令行(Ubuntu 14.04)连接到MySQL时出现以下错误

  

ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

似乎缺少文件/var/run/mysqld/mysqld.sock。 MySQL仍在运行

% sudo service mysql status                                                    
mysql start/running, process 42703

我可以通过Python和MySQL Workbench和MySQL Pro连接MySQLdb和sqlalchemy。我正在运行Python脚本并出现以下错误

  

(1053,'正在关闭服务器')

我重新启动了脚本,一切都像往常一样运行但是从那时起我无法通过命令行连接。不确定发生了什么或为什么袜子会消失。我也跑了

sudo find / -type s

并且找不到与MySQL相关的任何内容。

UPDATE :似乎有人取消注释bind-address = 127.0.0.1(在/etc/mysql/my.cnf内),重新启动服务器,意识到这是一个错误,把它放回去了,重新启动。这会删除袜子文件吗?

1 个答案:

答案 0 :(得分:0)

问题似乎是多个mysql进程正在运行。尝试停止mysql和mysqld进程,然后重启mysql:

sudo pkill mysql
sudo pkill mysqld
sudo service mysql restart

现在你应该可以正常登录mysql

mysql -u root -p

如果它仍然不起作用,并且你的mysql数据库是本地的,请尝试将bind-address从127.0.0.1更改为localhost,然后再尝试杀死上面显示的进程。

打开配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 

查找包含 bind-address 的行并将该行更改为

bind-address            = localhost

保存文件并退出

现在终止进程并重启mysql(本评论开头的前3个步骤)。