本文介绍在Linux系统中配置mysql自动启动的几种常用方法。选择哪种方法取决于您的Linux发行版和MySQL安装路径。
方法一:使用systemd (推荐)
systemd是大多数现代Linux发行版的初始化系统。这是推荐的方法,因为它更规范、更可靠。
-
创建systemd服务文件: 使用root权限执行以下命令创建一个新的systemd服务文件:
sudo nano /etc/systemd/system/mysql.service
-
编辑服务文件: 将以下内容粘贴到文件中,并根据您的MySQL安装路径调整/usr/sbin/mysqld 和 /etc/mysql/my.cnf路径:
[Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf Restart=on-failure [Install] WantedBy=multi-user.target
-
保存并设置权限: 保存文件并设置正确的权限:
sudo chmod 644 /etc/systemd/system/mysql.service
-
重新加载systemd配置,启动并启用服务:
sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql
方法二:使用SysVinit (较旧系统)
一些较旧的Linux发行版仍然使用SysVinit。
-
创建SysVinit脚本: 使用root权限创建脚本文件:
sudo nano /etc/init.d/mysql
-
编辑脚本: 将以下内容粘贴到文件中,并根据您的MySQL安装路径调整MYSQL_HOME、PIDFILE和LOGFILE路径:
#!/bin/sh # description: Start and stop MySQL database server # processname: mysqld MYSQL_HOME="/usr/local/mysql" # 替换为您的MySQL安装路径 PIDFILE="/var/run/mysqld/mysqld.pid" LOGFILE="/var/log/mysql/error.log" case "$1" in start) echo "Starting MySQL..." /usr/bin/mysqld --defaults-file=/etc/my.cnf > /dev/null 2>&1 & echo $! > $PIDFILE ;; stop) echo "Stopping MySQL..." kill -f $(cat $PIDFILE) rm -f $PIDFILE ;; *) echo "Usage: /etc/init.d/mysql {start|stop}" exit 1 ;; esac exit 0
-
设置权限,启动并启用服务:
sudo chmod +x /etc/init.d/mysql sudo service mysql start sudo chkconfig mysql on
方法三:使用rc.local (不推荐)
rc.local方法已经过时,不推荐使用。 现代系统更倾向于使用systemd。
选择适合您系统的方法后,重启系统以验证MySQL是否自动启动。 记得替换脚本中的路径为您的实际MySQL安装路径。 如果遇到问题,请检查MySQL的错误日志文件。