【问题标题】:Manjaro Linux: I can't run Mariadb because missing socketManjaro Linux:我无法运行 Mariadb,因为缺少套接字
【发布时间】:2018-01-06 04:16:49
【问题描述】:

嗯,我有 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 的守护进程,我尝试了 touch strong> 在 /run/mysqld/mysqld.sock 但是当我尝试启动 mariadb 时它拒绝了我的连接,我尝试卸载/重新安装 MariaDB,但它是同一件事:(

在我的所有目录中我都找不到 mysql.sock 或类似的。

请帮帮我!

【问题讨论】:

  • 从阅读错误日志开始。位置各不相同,但有时它是/var/log/mysql 或/usr/local/mysql/data 中的.err 文件。套接字文件的实际路径可能不同,或者错误日志应指示更多信息。
  • 应该可以查询:show variables where variable_name = 'socket'查看socket路径。如果那是空白,那么服务器可能没有运行? my.ini 文件应显示文件中带有socket= 变量的指定路径。

标签: mysql sockets installation mariadb manjaro


【解决方案1】:

我遇到了同样的问题,对我有用的解决方案是 https://serverfault.com/a/813123 ,我刚刚清理了:

sudo rm /var/lib/mysql/*

然后初始化数据库:

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

【讨论】:

    【解决方案2】:

    似乎服务器使用的套接字和客户端认为的套接字之间可能存在差异。

    您可以检查进程列表 (ps -ef | grep mysql) 并查看服务器运行的套接字设置是否与您预期的不同。 (寻找--socket=。)

    编辑您的/etc/my.cnf,查找或创建[client-server] 部分,并将@​​987654327@ 设置为有意义的文件。它应该位于用户有权访问的目录中。默认设置是socket=/tmp/mysql.sock,所以这应该是一个安全的选择。然后删除/etc/my.cnf 中其他位置的任何其他socket 设置或/etc/my.cnf.d/ 目录中的文件。然后重新启动,它应该有望工作。

    还要检查您是否有个人配置文件~/.my.cnf,在其中查找套接字设置,如果有,请将其删除。

    有关参考,请参阅 MariaDB KB 中的 socket 条目。另外,请查看 MariaDB 配置文件可存储位置的完整列表here。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多