【问题标题】:mysqld failing to start, and mysql error 2002mysqld无法启动,mysql错误2002
【发布时间】:2012-12-20 04:22:24
【问题描述】:

好的,我环顾四周,但我对这个问题感到非常困惑。如果这是愚蠢的,请原谅我。 :*S 我正在运行 32 位 Debian 6.0.6。

    root@debian:~# service mysql start
    Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

所以,服务启动失败。

    root@debian:~# mysql
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

这是运行命令mysql时给出的错误。这个错误是因为mysqld无法启动吗?还是有其他原因?

我转到目录 /var/mysqld/ 并没有名为 mysqld.sock 的文件。是这个问题,还是我傻?哈哈。任何帮助将不胜感激。感谢您的宝贵时间。

编辑:另外,与 mysql 相关的日志,例如 mysql.log 和 mysql.err 似乎对它们没有任何价值,它们是空白的。另外,我已经 chmod 777'd mysql 所作用的所有目录。该服务仍然继续拒绝运行。

【问题讨论】:

  • 查看日志以找出失败的原因。 /var/log/mysql 可能。 (不记得 debian 把它放在哪里了)
  • 在那个目录中,根本没有任何文件。不过,我会调查一下文件可能在哪里。
  • 在 /etc/my.cnf 中查找日志文件路径的定义位置
  • 查看 my.cnf 文件,日志的默认位置似乎正是您提到的位置,/var/log/mysql/,但是我注意到有一些 .log 文件在上一个目录 /var/log/ 中。文件 mysql.err、mysql.log、mysql.log.1.gz 和 mysql.log.2.gz 都在这个目录中。我用nano打开了mysql.err和mysql.log,它们都是空白文件,里面什么也没写。 wtf?
  • @DrDeviation 如果其中一个解决了您的问题,请您选择一个答案,以便我们将其标记为已关闭?

标签: mysql debian lamp


【解决方案1】:

尝试以不同的方式追踪错误。在前台运行 MySQL。

mysqld_safe --log-error=/var/log/mysql.err

这应该会在/var/log/mysql.err 生成一个包含一些详细信息的日志,如果有的话,请将详细信息添加到您的问题中,以防我下面的解决方案不起作用并且其他人可以提供帮助。

您最终可能会收到一个错误mysqld_safe: command not found,如果出现这种情况,请使用locate 命令来查找它。

locate mysqld_safe

这会告诉你它在哪里。比如返回/usr/bin/mysqld_safe,运行命令

/usr/bin/mysqld_safe --log-error=/var/log/mysql.err

如果我不得不冒险猜测,你会发现一个关于 pthreads 的错误。

InnoDB: Error: pthread_create returned 12

如果是这种情况,简单的解决方案是为 MySQL 禁用 InnoDB。你可能不需要这个,所以在配置中禁用它。

要关闭 InnoDB,请编辑位于 /etc/mysql/my.cnf 的 MySQL 配置文件并将其添加到其中

skip-innodb

现在启动 MySQL

/etc/init.d/mysql start

【讨论】:

  • 您可能不需要 InnoDB 吗?你在开玩笑,对吧?在 MyISAM 和 InnoDB 这两个基本引擎选项中,从 MySQL 5.6 开始,后者几乎在所有方面都更胜一筹。除非您要安装一些古老的软件,否则 InnoDB 是必不可少的。
【解决方案2】:

我遇到了同样的问题。

/tmp 目录没有写入,因此 MYSQL 无法写入一些需要的文件。

只要这样做:

chmod 777 /tmp

然后重启mysql

/etc/init.d/mysql start

【讨论】:

  • 我也遇到了这个问题,这个解决方案为我解决了这个问题。就我而言,我的整个/tmp 目录不知何故被删除了。重新创建后,我执行了chmod,它成功了。
  • 我收到错误[FAIL] /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! ... failed!
  • 已解决:尝试sudo /etc/init.d/mysql start 仍然会出现问题中提到的先前错误...
【解决方案3】:

这几天我都遇到同样的问题,这是我的网络 (DHCP) 以及 mysql 配置(我一直在尝试)。

这可能会对您有所帮助:

  • 打开/etc/mysql/my.cnf
  • 找到bind-address并确保IP地址正确或像这样注释掉 #bind-address

【讨论】:

    【解决方案4】:

    我也一样

    我已经卸载了 zlib1g-dev,一切正常

    【讨论】:

    • 是什么让你决定卸载zlib1g-dev?请提供比“我做了 X 或 Y”更多的上下文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2017-03-06
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多