设置 MySQL 5.7 随操作系统Ubuntu启动。
/etc/init.d/mysqld start
Ubuntu 设置 /etc/init.d/mysqld 开机自启(适配你源码安装的 MySQL)
【方案可行可用】
你的 MySQL 是手动二进制安装,启动脚本为 /etc/init.d/mysqld,Ubuntu 使用 update-rc.d 注册 SysV 脚本实现开机自启,分完整步骤操作:
一、确认脚本权限
脚本必须拥有可执行权限,先执行:
chmod +x /etc/init.d/mysqld
# 查看权限验证
ls -l /etc/init.d/mysqld
root@guoleiserver:/etc# ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10576 5月 4 20:08 /etc/init.d/mysqld
二、注册开机自启(核心命令)
# 添加默认运行级别开机启动链接
update-rc.d mysqld defaults
defaults:自动在开机 2/3/4/5 多用户级别设置启动,关机 0/1/6 停止- 无报错即代表注册成功
补充:如果后续想关闭自启
# 取消开机自启
update-rc.d mysqld disable
# 彻底删除自启链接
update-rc.d -f mysqld remove
三、验证自启配置是否生效
方式 1:查看 rc 运行级软链接
ls /etc/rc2.d/S*mysqld
root@guoleiserver:/etc# ls /etc/rc2.d/S*mysqld
/etc/rc2.d/S01mysqld
出现 Sxxmysqld 文件 = 开机启动成功(S 代表 Start)
方式 2:重启服务器测试
reboot
# 重启后登录查看MySQL状态
systemctl status mysqld
# 或
/etc/init.d/mysqld status
输出 running 代表开机自动拉起 MySQL。
四、备选兜底方案(update-rc.d 异常时用 rc.local)
若上面注册失败,使用系统开机脚本兜底:
- 编辑 rc.local
vim /etc/rc.local
- 在
exit 0上方插入启动命令
sleep 3
/etc/init.d/mysqld start
exit 0
- 赋予执行权限并启用 rc-local 服务
chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local
五、配套 MySQL 启停管理命令
# 启动MySQL
/etc/init.d/mysqld start
# 停止MySQL
/etc/init.d/mysqld stop
# 重启MySQL
/etc/init.d/mysqld restart
# 查看运行状态
/etc/init.d/mysqld status
六、解决之前 systemctl enable 报错补充说明
你之前执行 systemctl enable mysql 提示 transient/generated,原因: mysqld.service 是 systemd 自动转换的临时兼容单元,无法直接 enable; 使用 update-rc.d 操作原始 /etc/init.d/mysqld 脚本是原生兼容方案,不会出现该报错。
七、数据库正常后重启 uWSGI 修复 Django 500 报错
MySQL 开机自启配置完成后,重启 uWSGI 重建数据库连接:
uwsgi --stop /home/guolei/backend/uwsgi.pid
uwsgi --ini /home/guolei/backend/uwsgi.ini