当我尝试连接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
其他回答
如果您的my.cnf文件(通常在etc文件夹中)配置正确
socket=/var/lib/mysql/mysql.sock
可以使用以下命令检查mysql是否正在运行:
mysqladmin -u root -p status
尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:
sudo chmod -R 777 /var/lib/mysql/
这为我解决了问题
注意,当mysql从my.cnf文件中读取套接字文件的位置信息时,mysql_secure_installation程序有时似乎不能正确地这样做。
所以,如果你像我一样,在安装时到处乱放东西,你可能会遇到这样的情况:你可以用mysql连接到数据库,但东西不能被保护(无论如何不使用那个脚本)。
为了解决这个问题,sreddy的建议很有效:从脚本期望套接字的位置到它实际所在的位置创建一个软链接。例子:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
(我使用/tmp/作为套接字的默认位置)
如果你是在sf.net的壳,尝试:
mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p
更改{LETTER}和{GROUP ID},如您的MySQL数据库的项目管理配置文件中所示。
这可能是一个愚蠢的建议,但请100%确保您的DB仍然托管在localhost。例如,如果网络管理员选择(或更改为)Amazon DB主机,您将需要该主机名!
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”
你可以像这样提前编辑: