无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器

时间:2012-01-20 04:28:11

标签: mysql connection

我尝试重新启动Mysql服务器,但它不能为我工作。我确定服务器正在运行,文件夹/var/lib/mysql/的权限是正确的(777)。

当我试图打开文件mysql.sock时,它给我一个错误,说文件可能已损坏。

请帮我登录数据库。提前致谢。

这就是My.cnf的样子

datadir=/var/lib/mysq
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
skip-external-locking

6 个答案:

答案 0 :(得分:3)

mysqld必须按照mysql.sock的顺序启动,并由任何进程访问。检查它是否正在运行。

我有同样的问题,检查mysqld是否正在运行,我发现不是,所以我启动了mysqld。这应该可以解决问题。

答案 1 :(得分:1)

您可以使用以下命令检查mysql是否正在运行: mysqladmin -u root -p status

还尝试将您的权限更改为mysql文件夹。如果您在本地工作,可以尝试:

sudo chmod -R 777 / var / lib / mysql /

答案 2 :(得分:0)

正如你从my.cnf那里得到的那样。

请确保两个套接字都指向同一个文件。你错过了它。请确认。 改变它,因为我已经改变了

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/lib/mysql/mysql.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
skip-external-locking

你的两个套接字都指向不同的文件。

试试..

答案 3 :(得分:0)

前一段时间我遇到了同样的问题。我更新了我的机器,插座停止工作。我的解决方案是将套接字更改为可以由每个进程打开的位置。

在/etc/mysql/my.cnf(或此文件所在的位置)

    [client]
    port = 3306
    #socket = /var/run/mysqld/mysqld.sock
    socket = /tmp/mysqld.sock # This location did it for me


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

    [mysqld]
    ...
    #socket = /var/run/mysqld/mysqld.sock
    socket = /tmp/mysqld.sock
    ...

所有配置文件使用相同的套接字似乎很重要。您还需要更改/etc/mysql/debian.cnf并更新套接字。希望这有帮助!

答案 4 :(得分:0)

除非mysqld服务正在运行,否则目录/ var / lib / mysql中不存在mysql.sock文件;请以root用户身份使用服务mysqld start启动mysqld;

然后从shell运行mysql来启动mysql数据库;这对我来说有相同的错误信息;

答案 5 :(得分:0)

您可能需要检查/var/lib/mysql目录的文件的权限,所有者和组,以及其中的文件。

当我将/var/lib/mysql目录移动到新计算机时,我遇到了类似的问题。在复制期间,权限已更改,并且所有者和组已更改为root。将所有者和组(chown user:group file/directory)和权限(chmod <value> filename/s)更改为MySQL管理员帐户解决了该问题。