MySQL 服务器无法在启动时启动

MySQL 服务器无法在启动时启动

我已经安装了MySQLRHEL 5 server并且想设置它以便服务器在启动时启动。

我已经运行了该chkconfig --list mysqld命令,它目前在级别 3、4 和 5 上运行。但是,当我重新启动服务器时,没有mysqld启动任何守护进程。

我也尝试通过执行手动启动服务器/usr/bin/mysqld_safe并得到以下输出:

Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
100319 10:31:30  mysqld ended

我查看了一下/var/log/mysqld.log,发现了以下内容:

100319 10:29:01  mysqld started
100319 10:29:02  InnoDB: Started; log sequence number 0 29752204
100319 10:29:02 [ERROR] Can't start server : Bind on unix socket: Permission denied
100319 10:29:02 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
100319 10:29:02 [ERROR] Aborting

更新:我尝试使用mysql.server脚本(来自/usr/share/mysql)启动,并且成功了。所以我继续并将此脚本链接到适当的运行级别(rc0.drc3.drc5.d)。但是,它仍然无法在启动时启动。

答案1

此版本的 mysqld 是来自官方存储库还是从 mysql.com 下载的 rpm?

如果 mysql.server 脚本有效,那么您应该能够将其复制到 /etc/init.d,然后从 /etc/rc3.d rc4.d 和 rc5.d 符号链接到它。

编辑:但是在执行符号链接之前,您需要先使用 chkconfig 关闭 mysqld。

答案2

删除 /var/lib/mysql/mysql.sock,然后 chkconfig mysqld on。您可以通过运行 ntsysv 获取服务菜单。使用 man chkconfig 和 man ntsysv 了解有关如何使用这些程序的更多信息。

答案3

您可能还想安装该strace包(它位于标准 YUM 存储库中),然后运行:

strace /etc/init.d/mysqld start

您应该能够很快确定错误出在哪里。

在 RHEL/CentOS 上,您通常希望使用 init 脚本来停止和启动 mysqld 守护进程 - 它的功能远不止简单的启动/usr/bin/mysqld_safe&

答案4

如果该进程尚未运行,以下是我看到的一些选项。

  • 3306 上还有其他东西在监听吗?(不太可能)
  • 您正在使用无权访问的用户身份运行,/var/lib/mysql/mysql.sock. 您可以尝试删除此文件并重新启动守护程序。

相关内容