当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
如果你的mysql之前是工作的,突然停止了,就“重启”服务器。
在我的CentOS vps上遇到了这个问题->
不断得到
无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器(2)
尝试了所有的技术,最终重新启动服务器修复了问题->
立即关闭-r
希望这能有所帮助!!
其他回答
编辑/etc/my.cnf即可 在my.cnf中添加以下行
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
重新启动mysql并重新连接
Mysql -u user -p password database -h host;
确保您的mysql服务正在运行
service mysqld start
然后,试试下面的方法:
(如果你没有设置mysql密码)
mysql -u root
如果您已经设置了密码
mysql -u root -p
以下是对我有效的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
在我的情况下,我已经将套接字文件移动到/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]部分中添加相同的套接字行来解决这个问题。
无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器 有两种解决方法
使用短链接 在客户端和服务器文件中提到套接字文件链接。
方法1: 要做链接你可以用
ln -s /data/mysql_datadir/mysql。袜子/ var / lib / mysql / mysql。袜子
方法2: 要提到客户端和服务器端的套接字文件,您需要为客户端和服务器文件设置套接字文件路径,如下所示。服务器文件名可以是Server .cnf,客户端文件名可以是client.cnf。在这个文件中,你会发现一个类似[client]或[server]的部分。你必须把更新套接字文件路径为服务器和客户端通信。
client.cnf
(客户端) 套接字= / mydata / db / mysql / mysql.sock
server.cnf
(服务器) 插座= mydata / db / mysql / mysql。袜子
我更喜欢用方法2代替方法1。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。