在安装好centos7后,按照步骤安装mysql5.7,当一些准备就绪后并将应用的表结构与数据都导入后,原本以为万事大吉,谁想稍后需要重启服务器,当服务器重启后发现应用不好用了,tomcat正常启动,当登录服务器检查后ps -ef |grep mysql发现mysql的进程并不存在,此刻心情................................,
继续找原因,发现/var/run/mysql/mysqld.pid丢失,手动创建并设置权限后,数据库成功启动,当再次重启服务器后mysql还不正常启动,经过分析发现mysqld.pid创建在系统的run目录下,该目录是运行在内存中的,因此服务器重启后文件不存在,知道病因了,那就对症下药吧。
vim /etc/init.d/mysqld
找到下面字段
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
修改为
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/lib/mysql/mysqld.pid"
mypidfile="$result"
继续编辑my.cnf文件
vi /etc/my.cnf
找到下面的字段
pid-file=/var/run/mysql/mysqld.pid
修改成
pid-file=/var/lib/mysql/mysqld.pid
创建一个pid文件并修改权限
touch /var/lib/mysql/mysqld.pid
chown mysql.mysql /var/lib/mysql/mysqld.pid
再次重启应该就没问题了,万事大吉,回家喝酒去