当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
我不得不从my.cnf禁用explicit_defaults_for_timestamp。
其他回答
首先输入“service mysqld start”并登录
在我的情况下,我已经将套接字文件移动到/etc/my.cnf内的另一个位置 从/var/lib/mysql/mysql.Sock到/tmp/mysql.sock
即使在重新启动mysqld服务后,当我尝试连接时,我仍然看到错误消息。 错误2002 (HY000):无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
问题在于客户端的配置方式。运行诊断将实际显示正确的套接字路径。Eg ps aux | grep mysqld
工作原理:
mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock
不工作:
mysql -uroot -p
mysql -uroot -p -hlocalhost
你可以通过在mysql配置的[client]部分中添加相同的套接字行来解决这个问题。
您正在连接到“localhost”还是“127.0.0.1”?我注意到,当您连接到“localhost”时使用套接字连接器,但当您连接到“127.0.0.1”时使用TCP/IP连接器。如果套接字连接器未启用/正在工作,则可以尝试使用“127.0.0.1”。
Navicat15:无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器
Ubuntu16.04版本,如果mysql服务器正在运行,在/etc/mysql中配置如下:
[mysqld] socket = /var/run/mysqld/mysqld.sock
那么Navicat15 localhost的默认设置是: " / var / lib / mysql / mysql.sock”
你可以像这样提前编辑:
遇到同样的问题——下面是我的解决方法。
假设mysqld正在运行,那么问题可能只是mysql客户端不知道在哪里寻找套接字文件。
解决这个问题最直接的方法是在用户的配置文件.my.cnf文件中添加以下一行(在linux上通常在/home/myusername下):
socket=<path to the mysql socket file>
如果你没有.my.cnf文件,那么创建一个包含以下内容的文件:
[mysql]
socket=<path to the mysql socket file>
在我的例子中,由于我将mysql默认数据文件夹(/var/lib/mysql)移动到不同的位置(/data/mysql),我添加到.my.cnf如下:
[mysql]
socket=/data/mysql/mysql.sock
希望这能有所帮助。