现象描述:centos下mysql不能随机启动
mysql的安装步骤
1,mysql编译安装,编译安装到/usr/local/mysql;
2,把support-files/mysql.server 文件cp到/etc/init.d/mysqld;
3,chconfig --add mysqld
本来以为一切ok,因为之前这样装没有任何问题,可是在一次关机重启后,发现mysql不会跟随主机一起启动。
分析问题:
1. 检查过mysqld的执行权限 代码示例:
[root@kvm01-105 mysql]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10880 apr 17 10:09 /etc/init.d/mysqld
2. 检查随机启动是否真的生效 代码示例:
[root@kvm01-105 mysql]# chkconfig --list|grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3. 查看系统启动日志,没有发现问题
相关阅读: mysql日志使用浅析 logrotate对MySQL日志轮替的实例分享 mysql设置自动清理binlog日志的方法 学习mysql binlog日志清理 mysql开启慢查询日志的方法 有关mysql的日志文件及配置 教你删除MYSQl的BIN-LOG日志 mysql删除bin-log日志一例 mysql日志配置(linux与windows)
经过几次测试都未能成功,本来想放弃这种启动方式,直接把mysql启动放到rc.local文件中,发现原来我的rc.local文件中有个挂载文件系统的的命令
而挂载的目录,正是我mysql使用数据目录。是不是启动顺序的问题呢?
于是我打开/etc/init.d/mysqld这个文件,发现文件中有这么一条记录 代码示例:
# comments to support chkconfig on redhat linux
# chkconfig: 2345 64 36
# description: a very fast and reliable sql database engine.
64为启动顺序,我知道rc.local中的启动顺序是99,那么我mysql先于rc.local中的服务启动。就是说我文件系统还未挂载,数据库就启动了,那肯定出问题,于是调整mysql启动顺序
chkconfig --del mysqld
修改/etc/init.d/mysqld文件 代码示例:
#chkconfig: 2345 64 36 ---> #chkconfig: 2345 99 36
chkconfig --add mysqld
重启机器测试,mysql数据库能正常随主机启动了。