我已经安装了MySQL
,RHEL 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.d
、rc3.d
和rc5.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.
您可以尝试删除此文件并重新启动守护程序。