启动服务报如下错误:
[root@dmp-cyh ~]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
进一步查看问题:
May 05 18:06:47 dmp-cyh systemd[1]: start request repeated too quickly for mysqld.service
May 05 18:06:47 dmp-cyh systemd[1]: Failed to start MySQL Server.
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has failed.
--
-- The result is failed.
May 05 18:06:47 dmp-cyh systemd[1]: Unit mysqld.service entered failed state.
May 05 18:06:47 dmp-cyh systemd[1]: mysqld.service failed.
从输出信息没有看到有用的。
看看mysql的日志文件吧
[root@dmp-cyh ~]# mysql --help| grep my.cnf
? ? ? ? ? ? ? ? ? ? order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
从配置文件中得知日志文件在/var/log/mysqld.log。文件太大了,只查看后100行吧,看能不能找到有用的信息。
大概的意思是表或数据库的空间损毁。
注意: 在解决之间记得虚拟机进行镜像备份,以防万一。
解决办法:
修改my.cnf的配置,使其强制启动。
innodb_force_recovery=1
检查数据库中损坏的表,从新创建并导入数据。
# 检查数据中损坏的表
mysqlcheck -u root -p database ?-c
在将my.cnf改回原来,启动成功。
innodb_force_recovery=0
|