MySQL服务器不能在启动时启动

我已经在RHEL 5 server上安装了MySQL ,并且希望将其设置为启动服务器。

我已经运行了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 ) 。 但是,它仍然没有启动。

这个版本的mysqld来自官方仓库还是你从mysql.com下载的rpm?

如果mysql.server脚本工作,那么你应该能够将其复制到/etc/init.d,然后从/etc/rc3.d rc4.d和rc5.d中将其链接到它。

编辑:但是你需要先使用chkconfig来closuresmysqld,然后再执行符号链接。

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

你可能还想安装strace包(它位于标准的YUM库),然后运行:

 strace /etc/init.d/mysqld start 

你应该能够很快地确定错误的位置。

在RHEL / CentOS上,您通常需要使用init脚本来停止和启动mysqld守护进程,而不仅仅是启动/usr/bin/mysqld_safe&

你已经有了另外一个运行在socket上的mysqld服务器:/var/lib/mysql/mysql.sock?

netstat -l -p -d作为root用户,看是否有任何东西在监听mysql端口。

如果进程还没有运行,这里有一些选项,我看到..

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