mysqld无法启动,而mysql错误2002

DrD*_*ion 5 mysql lamp debian

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

    root@debian:~# service mysql start
    Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
Run Code Online (Sandbox Code Playgroud)

因此,该服务无法启动.

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

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

我去了目录/ var/mysqld /,并没有一个名为mysqld.sock的文件.这是问题,还是我是白痴?HAHAH.任何帮助将不胜感激.感谢您的时间.

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

Kir*_*irk 8

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

mysqld_safe --log-error=/var/log/mysql.err
Run Code Online (Sandbox Code Playgroud)

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

您最终可能会收到错误mysqld_safe: command not found,如果您这样做,请使用该locate命令查找它.

locate mysqld_safe
Run Code Online (Sandbox Code Playgroud)

这会告诉你它在哪里.例如,如果返回/usr/bin/mysqld_safe,请运行该命令

/usr/bin/mysqld_safe --log-error=/var/log/mysql.err
Run Code Online (Sandbox Code Playgroud)

如果我不得不冒险猜测,你会发现有关pthreads的错误.

InnoDB: Error: pthread_create returned 12
Run Code Online (Sandbox Code Playgroud)

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

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

skip-innodb
Run Code Online (Sandbox Code Playgroud)

现在启动MySQL

/etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)

  • 你有可能不需要InnoDB吗?你在开玩笑,对吧?在MyisAM和InnoDB这两个基本引擎选项中,后者在MySQL 5.6中几乎在各方面都是优越的.除非你安装一些古老的软件,否则InnoDB是必不可少的. (4认同)