【问题标题】:MySQL can't connect - ERROR 2002 (HY000). Please HELP!MySQL 无法连接 - 错误 2002 (HY000)。请帮忙!
【发布时间】:2011-04-14 20:13:58
【问题描述】:

我正在使用 mysql,试图在 Debian 服务器上的数据库中添加一些外键......突然间我开始收到这条消息:

ERROR 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' (111) 连接到本地 MySQL 服务器

无论我做什么,我都会收到此消息。如果我重新启动 mysql,它只会把这个废话吐出来很多次。

我已经重新启动了很多次服务器,但它并没有消失。我不知道我做了什么...我只是在更改一个已经投入生产一年多的数据库的架构。

我最近更改了此服务器的域名,但更改后 mysql 工作了几天。

除此之外,我想不出我做了什么不同的事情。

请帮忙。我必须让这个数据库重新上线。

编辑: 高兴,mysql 通过尝试将外键添加到一个该死的数据库中而损坏了我的实际数据库。数据库是 toast。

幸好我有备份,但这是不真实的。

【问题讨论】:

  • 你从哪里得到这条消息?在做什么?
  • 做任何事。使用数据库,显示表格,启动服务器......一切。
  • /var/run/mysqld/ 和底层文件的权限是什么。您的 Web 服务的用户是什么。您的网络服务用户说“apache”或“www-data”应该拥有对 mysqld.sock 的完全访问权限
  • 我得到了这个错误,甚至没有考虑 apache 或类似的东西。我只是在命令行上使用“mysql”就得到了这个错误。该 mysqld 文件夹的权限是“drwxr-xr-x 2 mysql root”。服务器运行时sock文件的权限为“srwxrwxrwx 1 mysql mysql”

标签: mysql debian startup


【解决方案1】:

This seems to be a useful link。它建议启动mysql daemon,然后输入mysql。

/etc/init.d/mysqld 启动

mysql

如果这不起作用,请检查 mysql 客户端和服务器的配置文件,以确保它们指向正确的位置。

【讨论】:

  • 这就是问题所在……我的服务器正在运行。当然我用的是 mysqld start/mysql :(
  • 检查服务器 (mysqld) 正在创建的套接字是否与客户端 (mysql) 正在寻找的位置相同。
  • @Marc B:这是同一个位置。我在谷歌上找到了很多答案......但这对我没有帮助。这是一个有效的配置。我什么都没改变:(
  • 对不起,我希望是这样。您是否确认您的服务器正在运行? ps -ef | grep mysql
  • 如果它显示它正在运行,我会检查以确保它设置为侦听正确的地址并且您可以访问它(如果您从它访问它,这可能会有所不同本地主机或来自您的新站点名称)。
【解决方案2】:

原来数据库已损坏。如果您也遇到类似这样的错误,请尝试显示表并从 mysql 附带的基本默认数据库中选择数据以确保确定。

在我的情况下,删除和添加外键实际上破坏了我的数据库,这解释了为什么重新启动服务器或重新启动 mysqld 没有效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-02
    • 2018-10-29
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多