好吧,我有 Manjaro / Linux 17.0,我试图安装MariaDB,但我总是得到同样的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory")
我不知道该怎么做,我在成千上万的论坛中搜索,我无法用 systemctl 启动mariadb的deamon,我试图做一个触摸在 /run/mysqld/mysqld.sock 但当我尝试启动mariadb时它拒绝了我的连接,我试图卸载/重新安装MariaDB,但它是一样的:(
在我的所有目录中,我找不到 mysql.sock 或类似的。
请帮帮我!
答案 0 :(得分:1)
我遇到了同样的问题,对我有用的解决方案是https://serverfault.com/a/813123,我刚刚清理过:
sudo rm /var/lib/mysql/*
然后初始化数据库:
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
答案 1 :(得分:0)
似乎服务器用作套接字的内容与客户端认为应该是套接字的内容之间可能存在差异。
您可以检查进程列表(ps -ef | grep mysql
),看看服务器是否运行时的套接字设置与您预期的不同。 (寻找--socket=
。)
修改您的/etc/my.cnf
,找到或制作[client-server]
部分,并将socket
设置为有意义的文件。它应该位于用户有权访问的目录中。默认设置为socket=/tmp/mysql.sock
,因此这应该是一个安全的赌注。然后删除socket
中其他地方的任何其他/etc/my.cnf
设置或/etc/my.cnf.d/
目录中的文件。然后重新启动,它应该有用。
同时检查您是否有个人配置文件~/.my.cnf
,在那里查找套接字设置,如果是,请将其删除。
供参考,请参阅MariaDB KB中的socket条目。另外,请查看可以存储MariaDB配置文件的完整位置列表here。