当您管理带有数据库的 Linux 服务器时,由于各种原因导致 mysqld 服务意外停止并不是一个令人愉快的情况。在本教程中,您将学习如何使用脚本和 crontab 在任何原因下 MySQL 停止时自动启动。
由于某些原因,mysqld 守护程序有时会在某些小时突然停止,而不会自动重新启动。由于服务器日志没有提供太多帮助,我寻找了一种解决方案,通过检查 mysqld 服务是否正在运行,并在它处于非活动状态时通过 crontab 启动它。
内容
MySQL 如何在停止时自动启动?[Linux]
在使用 MariaDB 的 MySQL 服务器上,通常情况下,当由于各种原因停止时,mysqld 服务应该自动重新启动。如果没有这样做,下面的脚本将定期检查 mysqld 守护程序是否正在运行,并在它停止时帮助您自动启动 MySQL。
我的测试是在操作系统上完成的 Debian 12, MariaDB 10.11.4.
1. 打开控制台并为将来的脚本创建文件,该脚本将在 mysqld 服务停止时启动该服务。
我更喜欢使用编辑器“nano
“。
sudo nano /usr/local/bin/autostart_mysql.sh
2. 在新文件中“autostart_mysql.sh
” 复制以下脚本:
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
3.保存新文件“autostart_mysql.sh
”,然后设置执行权限。
chmod +x /usr/local/bin/autostart_mysql.sh
4. 导航至“/usr/local/bin/
”并通过命令测试脚本:“./autostart_mysql.sh
“。
现在,您正在开始的脚本 MySQL 仅当手动执行时才会自动运行。 添加到 crontab 后,它将按照我们设置的时间间隔定期运行。 我选择了这个脚本“autostart_mysql.sh
每 3 分钟运行一次。
如何将脚本添加到 crontab?
要将脚本添加到 crontab 以按照您设置的时间间隔定期运行,请运行以下命令: crontab -e
,然后将命令行添加到文件末尾。
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
指定脚本每 3 分钟执行一次。
保存 crontab 并退出编辑器。
完成此步骤后,检查服务 mysqld
每3分钟执行一次,如果服务停止,它将自动启动。
如果您需要帮助或其他说明,我们很乐意回答您的意见。