如何解决“无法通过套接字连接到本地 MySQL 服务器”错误?

Mah*_*You 14 mysql errors startup connections

每次尝试重新启动 MySql 时,我都会收到以下错误。在我更改默认数据目录之前它工作正常。

ERROR 2002 (HY000): 无法通过 socket '/var/lib /mysql/mysql.sock' (111) 连接到本地 MySQL 服务器

我知道其他人发布了其他解决方案,但没有一个对我有用。

pik*_*kai 14

检查以下

  1. 首先检查另一个实例是否在同一台机器上运行

    ps ax | grep mysql

  2. 然后,检查您的文件 my.cnf(可能在 /etc/mysql/ 文件夹中)是否正确配置


[mysqld]
datadir = /var/lib/mysql/
socket = /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
  1. 接下来,您已经更改了默认数据目录,您现在是否为新目录赋予了正确的权限
 chown mysql:mysql -R /var/lib/mysql/*
 chmod 755 -R /var/lib/mysql/*
Run Code Online (Sandbox Code Playgroud)
  1. 更改权限后重启服务并检查

    service mysql restart


小智 6

我的问题是多个 mysql 进程同时运行。

首先使用以下命令杀死进程:

sudo pkill mysql
Run Code Online (Sandbox Code Playgroud)

和

sudo pkill mysqld
Run Code Online (Sandbox Code Playgroud)

重启mysql

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

现在你应该可以登录了

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)


Rol*_*DBA 5

看起来套接字文件丢失了。service mysql stop并service mysql restart依赖于套接字文件的存在来关闭。

您必须使用 mysqladmin 和 TCP/IP 连接到 mysql 才能关闭

MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-h127.0.0.1 -u${MYSQL_USER} -p${MYSQL_PASS} --protocol=tcp -P3306"
mysqladmin ${MYSQL_CONN} shutdown
service mysql start
Run Code Online (Sandbox Code Playgroud)

我有关于像这样关机的帖子