当我尝试连接mysql时,我得到以下错误:

无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)

有解决这个错误的方法吗?背后的原因可能是什么?


当前回答

确保您的mysql服务正在运行

service mysqld start

然后,试试下面的方法:

(如果你没有设置mysql密码)

mysql -u root

如果您已经设置了密码

mysql -u root -p

其他回答

我做了以下更改

在[mysqld]和my.cnf的[client]中都提到了socket的任何路径,并重新启动mysql

[mysqld] 插座= / var / lib / mysql / mysql。袜子

(客户端) 套接字= / var / lib / mysql / mysql.sock

如果你是在sf.net的壳,尝试:

mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p

更改{LETTER}和{GROUP ID},如您的MySQL数据库的项目管理配置文件中所示。

这可能是一个愚蠢的建议,但请100%确保您的DB仍然托管在localhost。例如,如果网络管理员选择(或更改为)Amazon DB主机,您将需要该主机名!

无法通过套接字/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。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。

MariaDB是MySQL的一个社区开发的分支,在许多发行版中已经成为MySQL的默认实现。

首先你应该开始,

$ sudo systemctl start mariadb

如果失败了,不如试试,

$ sudo systemctl start mysqld

然后启动mysql,

$ mysql -u root -p

到今天为止,在Fedora中,这个包被命名为mariadb 在Ubuntu中叫做mariadb-server。

因此,如果您的系统中还没有安装它,您可能必须安装它。