当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
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”
你可以像这样提前编辑:
其他回答
如果您的my.cnf文件(通常在etc文件夹中)配置正确
socket=/var/lib/mysql/mysql.sock
可以使用以下命令检查mysql是否正在运行:
mysqladmin -u root -p status
尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:
sudo chmod -R 777 /var/lib/mysql/
这为我解决了问题
请确保你已经正确安装了MySQL服务器,我遇到过这个错误很多次,我认为从套接字调试很复杂,我的意思是重新安装它可能更容易。
如果你使用的是CentOS 7,下面是正确的安装方法:
首先,添加mysql社区源代码 Yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
然后你可以通过yum install mysql-community-server安装它
用systemctl启动它:systemctl Start mysqld
请检查是否有其他mysql服务正在运行。
编辑/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。/var/lib/mysql/中不存在Sock。
如果你在另一个位置找到了相同的文件,那么符号链接它:
例如:我把它放在/data/mysql_datadir/mysql.sock中
切换用户到mysql,执行如下所示:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
这解决了我的问题