当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
确保你启动了服务器:
mysql.server start
然后用root用户连接:
mysql -uroot
其他回答
如果您的my.cnf文件(通常在etc文件夹中)配置正确
socket=/var/lib/mysql/mysql.sock
可以使用以下命令检查mysql是否正在运行:
mysqladmin -u root -p status
尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:
sudo chmod -R 777 /var/lib/mysql/
这为我解决了问题
当我用yum重新安装mariadb时,我遇到了这个问题,它将我的/etc/my.cnf.d/client.cnf重命名为/etc/my.cnf.d/client.cnf.rpmsave,但保留/etc/my.cnf不变。
因为我已经在/etc/my.cnf中配置了mysqld的套接字,在/etc/my.cnf.d/client.cnf中设置了自定义路径。
所以安装后,mysql客户端找不到mysql的socket conf,所以它尝试使用默认的socket路径来连接msyqld,这将导致这个问题。
以下是定位此问题的一些步骤。
检查mysqld是否运行ps -aef | grep mysqld
$ps -aef | grep mysqld | grep -v grep
mysql 19946 1 0 09:54 ? 00:00:03 /usr/sbin/mysqld
如果mysqld正在运行,显示它使用的套接字与netstat -ln | grep mysql
$netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 560340807 /data/mysql/mysql.sock
检查套接字是否是mysql客户端试图连接。 如果不是,编辑/etc/my.conf.d/client.cnf或my.conf使套接字与mysqld中的套接字相同
[client]
socket=/data/mysql/mysql.sock
你也可以编辑mysqld的套接字,但你需要重新启动或重新加载mysqld。
确保你启动了服务器:
mysql.server start
然后用root用户连接:
mysql -uroot
确保在/var中有足够的空间。如果Mysql恶魔不能写入额外的信息到驱动器,Mysql服务器将不会启动,这将导致错误无法连接到本地Mysql服务器通过套接字'/var/lib/ Mysql / Mysql。袜子”(2)
考虑使用
expire_logs_days = 10
max_binlog_size = 100M
这将帮助您降低磁盘使用率。
当试图在SSH客户端连接mysql时遇到这个问题,发现在命令中添加套接字路径时,在套接字之间切换是必要的。
> mysql -u user -p --socket=/path/to/mysql5143.sock