当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
我做了以下更改
在[mysqld]和my.cnf的[client]中都提到了socket的任何路径,并重新启动mysql
[mysqld] 插座= / var / lib / mysql / mysql。袜子
(客户端) 套接字= / var / lib / mysql / mysql.sock
其他回答
当我用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。
编辑/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服务器,我遇到过这个错误很多次,我认为从套接字调试很复杂,我的意思是重新安装它可能更容易。
如果你使用的是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。/var/lib/mysql/中不存在Sock。
如果你在另一个位置找到了相同的文件,那么符号链接它:
例如:我把它放在/data/mysql_datadir/mysql.sock中
切换用户到mysql,执行如下所示:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
这解决了我的问题
如果你是在sf.net的壳,尝试:
mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p
更改{LETTER}和{GROUP ID},如您的MySQL数据库的项目管理配置文件中所示。