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,重点关注启动阶段的报错行。
