Linux下解决MYSQL数据库连接数量过多问题以及远程操作的shell脚本编制


相信使用数据库的同学都会经常遇到1129错误:Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’;网上也有不少教程提供解决方案,如果你是MYSQL数据库的管理员,拥有数据库操作权限,那可可以参考如下文章:
Mysql使用定时器自动执行FLUSH HOSTS处理
如果你不是数据库管理员,无法修改系统配置文件,那么则可以选择本文较为优雅的方式进行解决。

1.前期准备

需要本机上安装mysql命令;

2.脚本编制

flush_hosts_mysql.sh脚本编制如下:

#!/bin/bash
echo "Connect mysql..."
mysql -h 117.0.0.1 -P 3306 -u root -pYourPasswd <<EOF
use mysql;
flush hosts;
# set  MYSQL args
show global variables like '%max_connect_errors%';
set global wait_timeout=100;
set global  interactive_timeout=300;
exit
EOF
echo "Connect succes!"

3.配置定时运行

crontab -e命令编辑定时任务:

#每三个小时运行一次刷新数据库脚本
1 */3 * * * sh /home/flush_hosts_mysql.sh

4.脚本错误的问题

有人可能会遇到下面的问题

-bash: ./myss.sh: /bin/bash^M: bad interpreter: Text file busy

这是因为脚本的编辑格式多半是windows下编辑的,需要执行dos2unix命令 ( Centos下安装方式:yum install dos2unix) 将脚本转换为Unix格式:

dos2unix /home/flush_hosts_mysql.sh

这样即可实现通过脚本登录数据库,然后对数据库进行定时刷新操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驯龙高手_追风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值