在 Debian 系统中,MySQL(以及其替代品 MariaDB)的开机自启设置方法主要取决于你的 Debian 版本以及 MySQL 的安装方式。
以下是几种最常用和有效的设置方法:
systemctl(推荐,适用于 Debian 8 “Jessie” 及更新版本)现代 Debian 系统使用 systemd 作为初始化系统。这是管理开机自启最标准的方法。
检查服务状态
首先,确认 MySQL 服务名称(通常是 mysql 或 mariadb)。
sudo systemctl status mysql
# 或者
sudo systemctl status mariadb
设置开机自启 如果返回的信息显示 “disabled” 或者你想要确保开启,运行以下命令:
sudo systemctl enable mysql
(如果是 MariaDB,请将 mysql 替换为 mariadb)
验证是否设置成功
sudo systemctl is-enabled mysql
如果输出显示 enabled,说明已设置成功。
立即启动服务(如果尚未启动)
sudo systemctl start mysql
update-rc.d(适用于 Debian 7 “Wheezy” 及更早版本,或 SysVinit 系统)如果你使用的是老版本的 Debian 或者系统没有使用 systemd,可以使用这个传统的方法。
设置开机自启
sudo update-rc.d mysql defaults
移除自启(备用知识)
sudo update-rc.d mysql remove
mysql.server 脚本(手动通用方法)如果你是从官方网站下载的二进制包(tar.gz)手动安装的 MySQL,而不是通过 apt 安装的,那么包里通常自带一个启动脚本。
复制启动脚本
通常位于 MySQL 解压目录的 support-files 文件夹下。
# 假设 MySQL 安装在 /usr/local/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
添加到启动项
sudo update-rc.d mysql defaults
如果在设置过程中遇到问题,请检查以下几点:
检查 MySQL 是否安装成功
dpkg -l | grep mysql
# 或者
dpkg -l | grep mariadb
如果 systemctl enable 报错
提示 Failed to enable unit: File exists 或类似错误,可能是之前有残留的链接。可以尝试先 disable 再 enable,或者检查 /etc/systemd/system/ 目录下是否有相关的无效链接。
确认服务名称
在 Debian 上,如果你安装的是 mariadb-server(这是 Debian 默认推荐的),服务名通常是 mariadb,而不是 mysql。虽然两者通常通用,但最好使用正确的名称。
对于绝大多数现代 Debian 用户(Debian 9, 10, 11, 12),只需要执行这一条命令即可:
sudo systemctl enable mysql