当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
如果你在最近的RHEL上,你可能需要启动mariadb(一个开源的mysql db)而不是mysql db:
yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start
然后你应该能够以通常的方式访问mysql:
mysql -u root -p
其他回答
这可能是一个愚蠢的建议,但请100%确保您的DB仍然托管在localhost。例如,如果网络管理员选择(或更改为)Amazon DB主机,您将需要该主机名!
首先输入“service mysqld start”并登录
我做了以下更改
在[mysqld]和my.cnf的[client]中都提到了socket的任何路径,并重新启动mysql
[mysqld] 插座= / var / lib / mysql / mysql。袜子
(客户端) 套接字= / var / lib / mysql / mysql.sock
无法通过套接字/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。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。
您正在连接到“localhost”还是“127.0.0.1”?我注意到,当您连接到“localhost”时使用套接字连接器,但当您连接到“127.0.0.1”时使用TCP/IP连接器。如果套接字连接器未启用/正在工作,则可以尝试使用“127.0.0.1”。