记一次MySQL数据库无法启动解决过程

网站建设 提交于 2019-09-03 11:37:37

前几天一台阿里云香港轻量应用服务器到期,重新购买了一台配置更高的轻量云,先说一下运行环境:Debian9.9+PHP7.3.8+Tengine2.3.1(阿里基于nginx的开源服务器)+MariaDB10.4(基于MySQL的开源数据库,10.4性能相当于MySQL8)。将所有站点都迁移到了新服务器,一切运行正常。

从昨天开始网站打开速度很慢,以为是香港线路不稳定导致的不以为然,今天上午访问更慢,页面几乎无法加载,于是登录服务器输入service nginx restart 和 service php-fpm restart分别重启nginx和php,故障依旧,接着输入service myqsld restart重启数据库直接卡住,只好放弃重启数据库输入reboot重启服务器,重启过程也奇慢,正常重启不到1分钟,这次花了十几分钟。结果重启后网站仍然打不开,根据网站错误提示可以判断是无法连接数据库。

SSH连接数据库输入  mysql -u root -p 试图登录数据库却提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2),如图:

mysql数据库无法启动解决方法

难道是mysql没有启动?那就手动启动mysql试试,输入 service mysqld start 提示:

Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

mysql启动失败,好在给出了提示,根据提示输入 systemctl status mysqld.service 提示如下:

mysqld.service - LSB: start and stop MariaDB
   Loaded: loaded (/etc/init.d/mysqld; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2019-09-03 09:44:46 CST; 10s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1270 ExecStart=/etc/init.d/mysqld start (code=exited, status=1/FAILURE)

Sep 03 09:44:40 iZj6cfxd6osspizssrcmahZ systemd[1]: Starting LSB: start and stop MariaDB...
Sep 03 09:44:40 iZj6cfxd6osspizssrcmahZ mysqld[1270]: Starting MariaDB
Sep 03 09:44:40 iZj6cfxd6osspizssrcmahZ mysqld[1270]: .190903 09:44:40 mysqld_safe Logging to '/data/mariadb/mysql-error.log'.
Sep 03 09:44:40 iZj6cfxd6osspizssrcmahZ mysqld[1270]: 190903 09:44:40 mysqld_safe Starting mysqld daemon with databases from /data/mariadb
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ mysqld[1270]: ...../etc/init.d/mysqld: 264: kill: No such process
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ mysqld[1270]:  failed!
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ systemd[1]: mysqld.service: Control process exited, code=exited status=1
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ systemd[1]: Failed to start LSB: start and stop MariaDB.
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ systemd[1]: mysqld.service: Unit entered failed state.
Sep 03 09:44:46 iZj6cfxd6osspizssrcmahZ systemd[1]: mysqld.service: Failed with result 'exit-code'.

mysql启动失败解决方法

根据提示打开 /data/mariadb/mysql-error.log  查看数据库错误日志。

mysql查看错误日志的方法

在日志中终于找到了根本原因,从 [ERROR] Unknown/unsupported storage engine: InnoDB 可以判断和存储有关,难道是磁盘空间不足?才几天就用尽了50G的磁盘?

用 df -h 查看磁盘使用情况不就知道了?

mysql数据库无法启动解决过程

天啦噜,还真是磁盘空间用完了,至于是什么原因导致的心中已有答案,那就是数据库日志(这事以前遇到过)。

mysql数据库无法启动解决方法

删除这些mysql-bin.******的文件,输入service mysqld start 回车。

mysql数据库无法启动解决过程

数据库终于启动,网站恢复正常速度。

提示:如果服务器磁盘空间不大建议关闭数据库日志功能,打开 /etc/my.cnf 删除或前以下两行前加#注释掉,然后重启数据库即可。

log_bin = mysql-bin
binlog_format = mixed

标签

如果文章对你有帮助,请赞赏支持本站发展!

发表评论

此字段内容将保密,不会被其他人看见。