如何解决“无法通过套接字连接到本地 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 stopservice 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)

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