当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
我没有从上面所有的答案中找到任何解决方案,我确实有mariadb安装,从Debian 11的源代码安装(不是从Debian apt包)。所以每当我在终端中触发mysql命令时,我都会得到这个错误:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
和mysql错误日志只显示相同的错误套接字上面,这是我很难知道背后的原因
我所做的是删除我的发行版中有mariadb依赖文件的mailutils包。
因此,我只需要触发这两个命令
apt -y remove mailutils
apt -y autoremove
当我在终端运行mysql命令时,我再也没有socket错误了
其他回答
它告诉你找不到/var/lib/mysql/mysql。sock的套接字文件
你要做的就是连接mysql。Sock文件可能在/tmp/mysql目录下。如果文件不存在,使用Sock创建它
touch /tmp/mysql.sock
然后执行
Sudo ln -s /tmp/mysql。袜子/var/lib/mysql/mysql.sock
注意,如果/var/lib中没有mysql目录,请创建它
mkdir mysql
刷新应用
我的问题是,我成功安装mysql,它工作得很好。
但是有一天,同样的错误发生了。
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
没有mysql。Sock文件存在。
这个解决方案解决了我的问题,mysql又开始运行了:
以root用户登录:
sudo su -
Run:
systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service
以root身份测试:
mysql -u root -p
Mysql现在应该启动并运行了。
我希望这也能帮助到其他人。
确保你启动了服务器:
mysql.server start
然后用root用户连接:
mysql -uroot
先尝试2、3种解决方案。如果您无法找到/var/lib/mysql/mysql.sock .sock,则仍然弹出错误提示
find /var/ -name mysql.sock
检查/var/中的可用空间
df
如果目录已满,请删除一些无用的文件/目录
rm /var/cache/*
也许你的问题现在可以解决了。
注意,当mysql从my.cnf文件中读取套接字文件的位置信息时,mysql_secure_installation程序有时似乎不能正确地这样做。
所以,如果你像我一样,在安装时到处乱放东西,你可能会遇到这样的情况:你可以用mysql连接到数据库,但东西不能被保护(无论如何不使用那个脚本)。
为了解决这个问题,sreddy的建议很有效:从脚本期望套接字的位置到它实际所在的位置创建一个软链接。例子:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
(我使用/tmp/作为套接字的默认位置)