【问题标题】:Linux Centos 6.6: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)Linux Centos 6.6: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
【发布时间】:2026-01-06 17:15:01
【问题描述】:

我正在尝试通过以下方式在 Linux 中连接 mysql 5.6:

[C003@C-003 mysql]$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我遇到了错误。我发现了很多提示,但没有一个对我有用,我不能为 Live 服务器冒这么大的风险。

部分命令输出如下:

[C003@C-003 mysql]$ service mysql status
ERROR! MySQL is running but PID file could not be found

[C003@C-003 mysql]$ ps -ef|grep mysql
root      1419     1  0 Apr28 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/SI-CloudDB-003.pid
mysql     1731  1419  6 Apr28 ?        20:58:36 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/SI-CloudDB-003.err --pid-file=/var/lib/mysql/SI-CloudDB-003.pid --socket=/var/lib/mysql/mysql.sock --port=3310
501      30843 28738  0 11:41 pts/2    00:00:00 grep mysql

【问题讨论】:

  • 听起来它属于 serverfault.com 而不是 *.com :)
  • 它属于Linux服务器上的MySQL数据库服务。 Linux 服务器运行良好,但数据库配置出现问题。
  • 它仍然不是关于编程,所以它是题外话。 :)
  • 我尝试了很多连接数据库服务器,但失败了,因此我的备份没有运行。

标签: mysql mysql.sock


【解决方案1】:

如果您更改了默认数据目录位置,则会出现此问题..
在这种情况下,您需要创建软链接。请按照以下步骤操作:

Step1:停止数据库服务

服务 mysqld 停止

步骤 2:在默认位置创建软链接,即 /var/lib 指向新的数据库数据位置。

ln -s /Data/lib/mysql mysql

Step3:重启mysqld服务

服务 mysqld 重启

你应该可以连接 mysql db...

【讨论】:

    【解决方案2】:

    检查 /var/lib/mysql/mysql.sock 是否存在以及该文件有什么所有权/权限

    【讨论】:

    • 这个文件在/var/lib/MySQL中不存在,甚至整个系统都不存在这个文件。
    • 小写路径名
    【解决方案3】:

    问题已解决。我在 /var/lib/mysql/mysql.sock 创建文件并将所有权设置为 MySQL 用户和组。当尝试关闭服务时,我收到错误“无法通过套接字'/var/mysql/mysql.sock'连接到本地 MySQL 服务器”。我通过kill -9 process_id杀掉mysql后台进程,然后启动mysql服务。现在它工作正常。

    【讨论】:

      最近更新 更多