实际生产环境中为了避免重启服务器后所有的服务都手动启动带来的麻烦,建议所有基础服务都设置为开机自动启动。本章节我们主要演示在Centos7中如何将MySQL注册为系统服务,并实现开机自动启动。
① 手动启动mysql,查看进程信息,复制pid-file后的路径。
bash
/usr/local/mysql/support-files/mysql.server start
② 在 /usr/lib/systemd/system 目录下创建一个文件 mysql.service
③ 编辑 mysql.service,输入以下内容
bash
[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/mysql/data/centos-linux.shared.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PrivateTmp=false
[Install]
WantedBy=multi-user.target
备注:
- Type:
- forking: 以 fork 方式从父进程创建子进程,创建后父进程会立即退出
- simple: 默认值,执行
ExecStart
指定的命令,启动主进程
- PIDFile: 启动后进程对应的pid文件路径
- ExecStart: 服务启动命令,命令需要绝对路径
- ExecReload: 服务重启命令
- ExecStop: 服务停止命令,命令需要绝对路径
③ 重新载入service服务
bash
systemctl daemon-reload
④ 注册系统服务成功,可以使用systemctl来操作mysql服务,启动服务后最好使用ps -ef | grep mysql查看进程信息,确保正常启动。
bash
systemctl start mysql
systemctl stop mysql
⑤ 设置mysql服务开机启动
bash
systemctl enable mysql
⑥ 重启Linux验证
bash
reboot