可不可以写一个脚本,让网站每次宕机都重启MySQL?
Can we write a script to restart MySQL every time the website is down?
我正在使用托管在 AWS 上的 Linux 服务器,由于可用 RAM 较少,网站出现故障,我收到 "Error establishing connection to database" 错误。
每次发生这种情况我都必须重新启动MySQL。
我们可以自动化这个过程吗?
我用来重启LAMPP服务器的命令是:
sudo /opt/lampp/lampp restart
使用bash脚本监控mysql端口,如果关闭则重启
只是为了演示它是如何工作的
nc 命令检查端口 3306(mysql 端口)是否可联系
如果是那么 $?设置为零,因此这算作 "up"
否则 $?下来了。您可能希望使用不同的命令而不是 "nc",例如 echo "select 1;" | mysql
尝试 运行 什么都不做 mysql 命令
while [ 1 ]
do sleep 1
nc -z localhost 3306
if [ $? == 0 ]; then echo "up"
else echo "down"
fi
done
您可能使用的实际版本可能如下所示
while [ 1 ]
do sleep 10
nc -vz localhost 3306
if [ $? != 0 ]; then /opt/lampp/lampp restart
fi
done
您可以让 window 打开(也可以使用 "screens" 命令)并且 运行 这个 24x7
如果您可以将时间间隔增加到 1 分钟,那么 运行 就可以像这样退出 cron
在 crontab 中(每分钟 运行)
* * * * * /path/to/script
脚本
#!/bin/bash
nc -vz localhost 3306 > /dev/null 2>&1
if [ $? != 0 ]; then /opt/lampp/lampp restart
fi
AWS EC2 提供 IOPs 突发,因此我使用大型 SWAP / Cache 配置我的 Linux 服务器。我知道这与 MySQL 喜欢将其全部存储在内存中的 InnoDB 概念背道而驰。此外,假设您使用的是 LAMP.
,您应该扩展 PHP 的内存使用量
http://charmingwebdesign.com/how-to-add-swap-partition-on-ec2-linux-instance/
我正在使用托管在 AWS 上的 Linux 服务器,由于可用 RAM 较少,网站出现故障,我收到 "Error establishing connection to database" 错误。
每次发生这种情况我都必须重新启动MySQL。
我们可以自动化这个过程吗?
我用来重启LAMPP服务器的命令是:
sudo /opt/lampp/lampp restart
使用bash脚本监控mysql端口,如果关闭则重启
只是为了演示它是如何工作的
nc 命令检查端口 3306(mysql 端口)是否可联系
如果是那么 $?设置为零,因此这算作 "up"
否则 $?下来了。您可能希望使用不同的命令而不是 "nc",例如 echo "select 1;" | mysql
尝试 运行 什么都不做 mysql 命令
while [ 1 ]
do sleep 1
nc -z localhost 3306
if [ $? == 0 ]; then echo "up"
else echo "down"
fi
done
您可能使用的实际版本可能如下所示
while [ 1 ]
do sleep 10
nc -vz localhost 3306
if [ $? != 0 ]; then /opt/lampp/lampp restart
fi
done
您可以让 window 打开(也可以使用 "screens" 命令)并且 运行 这个 24x7
如果您可以将时间间隔增加到 1 分钟,那么 运行 就可以像这样退出 cron
在 crontab 中(每分钟 运行)
* * * * * /path/to/script
脚本
#!/bin/bash
nc -vz localhost 3306 > /dev/null 2>&1
if [ $? != 0 ]; then /opt/lampp/lampp restart
fi
AWS EC2 提供 IOPs 突发,因此我使用大型 SWAP / Cache 配置我的 Linux 服务器。我知道这与 MySQL 喜欢将其全部存储在内存中的 InnoDB 概念背道而驰。此外,假设您使用的是 LAMP.
,您应该扩展 PHP 的内存使用量http://charmingwebdesign.com/how-to-add-swap-partition-on-ec2-linux-instance/