我已经在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.d , rc3.d和rc5.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端口。
如果进程还没有运行,这里有一些选项,我看到..
/var/lib/mysql/mysql.sock.的用户身份运行/var/lib/mysql/mysql.sock. 您可以尝试删除此文件并重新启动守护进程。