最近由于各种原因,新网站服务器数据库总出问题,终于解决了CentOS 7服务器下的MariaDB数据库崩溃问题
自从做了全职境外自由职业,自己运营服务器在国外的网站时,经常发生数据库连接崩溃问题,至于超载还是连接数等等,已经解决了。最近又出现了因为偶然问题,造成的数据库崩溃。很头疼,之前遇到了,以为解决了最大连接数等问题就可以解决了,但是不然,还是发生了!
最后还是得感谢Google,没有它,估计也一直解决不了。当然之前也是问了CSDN等社区,也没解决。我的服务器是CentOS 7,数据库是MariaDB,MYSQL经常出现意外的崩溃,总是要手动重启服务器或者重启数据库来解决,很是头疼。万一自己出门有个时间没看网站怎么办,岂不是要丢生意了。
无奈之下,疯狂的google, Stack Overflow等等,试了很多方法,终于搞定了,让数据库崩溃的时候快速自动重启就可以恢复。关于MariaDB的官方资料,可以参考https://mariadb.com/kb/en/mariadb/starting-and-stopping-mariadb/
终于松了一口气啦,平时又要画界面又要搞开发还要维护服务器等等,真是有点头大啊,不过嘛,由于生活所迫,也不可能啥都求人,靠别人不如靠自己,所以各种折腾,也学会了架设和维护自己的linux服务器。下面说说解决办法吧,遇到有类似问题的童鞋,也可以参考下。
有些代码是简写了,有一点linux命令基础的可以看懂,步骤大概就是这样的。#是注释,大家都懂的,剩下的就是命令了,命令我用红色标注。
#首先确保此文件存在 /etc/systemd/system/multi-user.target.wants/mariadb.service
vi /etc/systemd/system/multi-user.target.wants/mariadb.service
#在[Service]下面加入以下行
Restart=always
#保存退出
:wq
#重新加载系统守护程序
sudo systemctl daemon-reload
sudo systemctl restart mariadb.service
#重启服务器,稍等十几秒后恢复
sudo reboot
#模拟数据库崩溃的效果,查找进程看到类似ID后可以kill掉
ps -ef | grep mysql
#强制终止进程(如果/etc/systemd/system/multi-user.target.wants/mariadb.service文件修改成功,择数据库被kill后,会立刻重启恢复)
#这里的ID要根据自己的服务器查看
sudo kill -9 2550
sudo kill -9 1590
你可以看到当你kill了进程后,数据库重启了,ID变动了,如下图所示:
#有些服务器只要经过上面的步骤就可以解决自动重启恢复的问题了,如果怕存在其它的数据库服务器重启问题,可以继续执行下面的步骤,避免后患:
这样就可以模拟出可能遇见的问题(也就是我网站发生数据库崩溃,无法连接的一些遇到过的错误信息):
#让崩溃后的数据库服务器自动重启,需要配置/etc/inittab文件,首先备份一个,编辑此文件一定要非常小心
sudo cp /etc/inittab /etc/inittab.orig
vi /etc/inittab
#结尾处增加一行,在/ etc / inittab文件中放置一个命令,以在mysqld_safe进程崩溃时重新生成mysqld_safe进程。 它有四个字段,每个字段与冒号(:)分隔开
ms:2345:respawn:/bin/sh /usr/bin/mysqld_safe
:wq
#保存后重启服务
systemctl restart mariadb.service
#重启服务器,稍等十几秒后恢复
sudo reboot
#查看服务状态
sudo service mariadb status
OK,结束了,就这么多,自己总算是松了一口气啦,要不然随时都要盯着网站,一直担心由于各种原因造成数据库崩溃无法连接网站的问题,多头疼。哈哈,总算是有收获,又学会了新技能。以至于如何配置服务器,如何做一些最初的优化调整设置,如何安装SSL证书等等,也是经过了自己不少的摸索学习的,全部一一解决啦。奖励自己,吃点东西看场电影,休息啦。新网站也不放出来了,因为业务等等全是境外的,和自己这个中文博客啥的一点关系没有,这个只是记录自己的生活学习工作咯,用中文的方式。好了,如果大家看了我这些原创文章对自己有帮助,也可以经常关注我的博客,我一直在写博客,虽然写的不多,大多都是自己想自己总结学习出来的成果,是一个沉淀。
本文出自没位道 - Chuckie Chang个人网站,转载请保留出处,谢谢!
文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
文章评论