宝塔MySQL数据库经常自动停止或者掉线的解决方案

8 篇文章 0 订阅
3 篇文章 1 订阅

早上在排查网站时发现某个网站流量掉了,然后打开显示数据库连接错误,我顿时就知道了这是什么原因,肯定是MySQL数据库自动停止了,一般遇到这种情况说明网站可能遭遇到了小规模cc攻击,数据库或者服务器内存承受不住而掉线了,而且这种情况通常发生在晚上。

这些沙雕也很狡猾的,大白天的他知道你会盯着网站,所以他们一般晚上才打你,因为晚上我们要睡觉,没这个时间去盯着网站,所以我写了个定时监控脚本,可以定时间监控MySQL、Nginx是否停止,如果停止就执行重启任务,并且记录日志到 /www 目录

监控日志存放的目录:

监控的日志:

 解决方案

1、MySQL监控

宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh   
/etc/init.d/mysqld start    
echo "监控到MySQL已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/mysql_jiankong.log  
fi

最后效果如下:

2、Nginx监控

宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

pgrep -x nginx &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/nginx start  
echo "监控到Nginx已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/Nginx_jiankong.log  
fi

3、PHP监控

宝塔面板--->计划任务,输入任务名称、执行周期、脚本内容

脚本内容如下:

注意:下面第3行代码中的52~73是指php版本5.2 7.3

pgrep -x php-fpm &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|73} restart
echo "监控到php已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/php_jiankong.log  
fi

4、redis监控

脚本内容如下:

pgrep -x redis &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/redis start
fi


5、memcached监控

脚本内容如下:

pgrep -x memcached &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/memcached restart
fi

最后

一般我们只需要添加MySQLNginx监控,其他的不需要添加,我只加了前面2个,添加了以后记得测试一下任务是否有效,去宝塔停止MySQL、Nginx,然后执行一下这个任务看看MySQLNginx状态是否开启。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
宝塔面板的MySQL数据库和Docker中的MySQL数据库有以下区别: 1. 部署方式:宝塔面板是一个集成的服务器管理面板,它提供了一键安装和管理MySQL数据库的功能。你可以通过在宝塔面板中选择MySQL数据库,并进行相关配置来快速部署和管理数据库。而Docker是一个容器化平台,你可以使用Docker来创建和管理MySQL容器,通过定义Docker镜像、容器等配置来部署和管理MySQL数据库。 2. 环境隔离:Docker提供了容器化的环境隔离,每个MySQL容器都是独立运行的,具有自己的文件系统、网络等资源,可以避免不同应用之间的相互影响。而宝塔面板中的MySQL数据库是直接安装在服务器上的,与其他应用共享服务器的资源。 3. 灵活性和可移植性:使用Docker部署MySQL数据库可以提供更大的灵活性和可移植性。你可以在不同的环境中使用相同的Docker镜像来快速部署和迁移数据库,而无需关注底层操作系统和服务器配置的差异。而宝塔面板中的MySQL数据库通常是与特定服务器绑定的,迁移需要手动配置和迁移数据库文件。 4. 扩展性:使用Docker可以更容易地扩展MySQL数据库。你可以通过调整Docker容器的配置、添加新的容器等方式来实现负载均衡或高可用性。而宝塔面板中的MySQL数据库通常是以单实例形式运行,如果需要扩展,可能需要手动配置和管理多个实例。 需要注意的是,宝塔面板中的MySQL数据库和Docker中的MySQL数据库并不是相互排斥的选择,而是根据具体需求和使用场景选择合适的部署方式。对于简单的应用场景,宝塔面板提供了方便的一键部署和管理;而对于复杂的、需要灵活性和可移植性的场景,使用Docker部署MySQL数据库可能更合适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值