【问题标题】:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'错误 2002 (HY000): 无法通过套接字 '/var/lib/mysql/mysql.sock' 连接到本地 MySQL 服务器
【发布时间】:2014-11-27 14:41:38
【问题描述】:

我已经安装了 Centos7 更新,删除了 MariaDB 并重新安装了 MySQL - 另外我已经删除了它并重新安装了它,但是每次我连接到 mysql -u root -p 时都会收到标题错误。此外,我已经查看了与此相关的其他票证,但仍未取得进展。如果我运行 service mysqld restart 它会显示“重定向到 /bin/systemctl restart mysqld.service”,然后就挂起。真的不是 linux 专家,所以不确定是什么原因造成的?

【问题讨论】:

  • 听起来您的 MySQL 守护进程无法启动。检查日志 - /var/log/mysqld.log。它给了你什么错误?如果您在 MariaDB 上安装了旧版本的 MySQL,如果您保持 /var/lib/mysql 目录不变,它可能无法转换数据文件。
  • 我收到以下关于 Innodb 的错误:2014-10-02 17:41:17 7948 [错误] InnoDB:自动扩展数据文件 ./ibdata1 的大小不同640 页(向下舍入为 MB)比 .cnf 文件中指定的页数:初始 768 页,最多 0 页(如果非零则相关)页! 2014-10-02 17:41:17 7948 [错误] InnoDB:无法打开或创建系统表空间。如果您尝试将新数据文件添加到系统表空间,但在这里失败了,您现在应该将 my.cnf 中的 innodb_data_file_path 编辑回原来的样子,并删除在此失败尝试中创建的新 ibdata 文件 InnoDB。
  • 我删除了 3x ibdata 文件和日志并重新启动它,但出现错误。我很高兴完全删除它(因为那里没有数据)但已经尝试过了。现在离开,明天回来。
  • 如果您不需要旧数据库中的数据,您应该删除/var/lib/mysql 中的所有内容。它将重新创建系统数据库,然后应该能够启动。

标签: mysql centos7


【解决方案1】:

我有同样的问题,并在挖掘后发现了一些东西。 MariaDB 是 mysql 的直接替代品。在新系统上,mysql 是 MariaDB 客户端(虽然我不清楚这意味着什么)。我检查了服务是否正在运行:

service mysqld status

这表明:

Redirecting to /bin/systemctl status mysqld.service mysqld.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)

也就是说,mysqld服务没有运行。

启动服务对我有用:
`systemctl start mariadb.service`

现在所有 mysql 命令都按预期工作了。

要打结,请在启动时启用服务:
`systemctl enable mariadb.service`

【讨论】:

  • 所以安装后,我得到了同样的错误,这篇文章解决了我的问题。谢了!
【解决方案2】:

在 [mysqld] 部分的 /etc/my.cnf 中检查 'socket=' 条目:

[mysqld1]
socket = /tmp/mysql.sock1

另一种方法是向“mysqladmin”或“mysql”命令提供“-hhost”和“-Pport”参数,以避免使用套接字。

mysql -u user -hservername -P3006 -p   -Dschema
mysqladmin -u user -p -hhostname -Pport 

【讨论】:

  • 要验证 mysqld 是否实际运行,请使用命令“pgrep -fl mysqld”。在输出中,您应该看到 2 个非常长的条目(每个条目在终端上缠绕了几次)。一行以“mysqld_safe”开头,另一行以“mysqld”开头。 'mysqld' 的换行行的 'end' 也应该包含 '--port=xxxx' 尝试为 'mysql 使用该值。 . . -Pxxxx' 命令行。
  • 谢谢。我已经运行了它,我看到的只是 9818 mysqld_safe 和 9970 mysqld。我将尝试删除并重新安装。
【解决方案3】:

删除目录修复它 - 删除目录(使用 rm -rf "目录名称")然后卸载 mysql "yum remove mysql mysql-server" 然后重新安装 "yum install mysql-server" 并运行 "service mysqld start"

如果您在启动 mysql 服务挂起时遇到此问题 - 请按照 Jeremiah 的建议检查日志 /var/log/mysqld.log。

【讨论】:

    【解决方案4】:

    如果您查看 MariaDB 日志文件,您可能会发现该问题与创建 pid 文件有关。解决方法:创建 PID 目录,然后将其所有者更改为 mysql:mysql

    【讨论】:

      猜你喜欢
      • 2019-01-26
      • 2012-10-14
      • 2015-03-09
      • 2013-03-05
      • 2013-11-08
      • 2011-05-25
      • 2018-10-09
      相关资源
      最近更新 更多