如何设置mysql开机自启_mysql服务自启动配置

来源:这里教程网 时间:2026-02-28 20:35:21 作者:

MySQL 服务开机自启,关键在于让系统在启动时自动运行

mysqld
进程。具体方法取决于你的操作系统和 MySQL 安装方式(官方二进制包、YUM/DNF 安装、或通过 Docker 等容器运行)。下面以主流 Linux 发行版(CentOS/RHEL 8+、Ubuntu/Debian)为例,说明标准配置方式。

确认 MySQL 安装方式和服务单元名

不同安装方式对应的服务名可能不同:

使用
dnf install mysql-server
(RHEL/CentOS 8+)或
apt install mysql-server
(Ubuntu/Debian):服务名通常是
mysql
mysqld
使用官方二进制包手动部署(如解压 tar.gz):默认无 systemd 单元,需自行创建
/etc/systemd/system/mysqld.service
运行
systemctl list-unit-files | grep -i mysql
可查看已注册的服务名。

启用 systemd 开机自启(推荐方式)

只要 MySQL 是通过包管理器安装,且系统使用 systemd(现代主流发行版均如此),只需一条命令:

执行
sudo systemctl enable mysqld
(或
mysql
,依上步确认的服务名而定);
该命令会创建软链接到
/etc/systemd/system/multi-user.target.wants/
,确保开机时启动;
可立即启动服务验证:
sudo systemctl start mysqld
,再用
sudo systemctl status mysqld
查看是否运行正常。

手动安装 MySQL 时配置 systemd 服务文件

若你使用官方二进制包(如

mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
),需手写 service 文件:

创建文件:
sudo nano /etc/systemd/system/mysqld.service
填入基本内容(根据实际路径调整
ExecStart
datadir
):
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
重载配置:
sudo systemctl daemon-reload
然后照常启用:
sudo systemctl enable mysqld

验证与排错要点

启用后别忘了验证是否真正生效:

重启系统或执行
sudo reboot
,之后检查:
systemctl is-active mysqld
应返回
active
常见失败原因:MySQL 数据目录权限不对(应属
mysql:mysql
)、配置文件路径错误、端口被占用、SELinux 或防火墙拦截(但不影响服务启动本身);
查看详细日志:
journalctl -u mysqld -n 50 -e
,重点关注启动阶段的报错行。

相关推荐