我尝试重新启动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
答案 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管理员帐户解决了该问题。