![mysql 服务器无法在开机时自动启动](https://linux22.com/image/960386/mysql%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E5%9C%A8%E5%BC%80%E6%9C%BA%E6%97%B6%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8.png)
如果我使用此命令启动 MYSQL 集群服务器,我会收到错误:
root@v-server1:/usr/local/mysql-cluster# /etc/init.d/mysql.server start
Starting MySQL
The server quit without updating PID file (/var/lib/mysql/v-server1.pid).
root@v-server1:/usr/local/mysql-cluster#
但是如果我通过此命令启动,服务器就可以顺利启动:
root@v-server1:/usr/local# cd mysql-cluster
root@v-server1:/usr/local/mysql-cluster# bin/mysqld_safe --defaults-extra-file=/etc/mysqld-cluster.cf --user=mysql --datadir=/var/lib/mysql --basedir=/usr/local/mysql-cluster &
[1] 29119
120404 13:44:00 mysqld_safe Logging to '/var/log/mysql/error.log'.
120404 13:44:01 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
^C
root@v-server1:/usr/local/mysql-cluster# /etc/init.d/mysql.server status
MySQL running (29524)
我的问题是我想让服务器在我打开系统时自动启动。
答案1
var/log/syslog
启动或运行脚本后检查错误/etc/init.d/
。那里应该有很多有用的信息。
我的猜测是启动脚本在启动时使用的命令参数或环境有问题。
使其正常工作的另一种方法是编辑启动脚本,为其提供成功启动时使用的确切命令和参数。
如果您的启动是从 进行的/etc/init.d/mysql.server
,请检查该文件。
在我的系统上,mysql 是使用 upstart 启动的,因此中的文件/etc/init.d/
只是通用脚本的链接/lib/init/upstart-job/
。
为了进行测试,我可以将成功启动命令中的变量移动/usr/bin/mysqld_safe --defaults-extra-file=/etc/mysqld-cluster.cf --user=mysql --datadir=/var/lib/mysql --basedir=/usr/local/mysql-cluster
到其中一个配置文件中。
在我的系统上,这些是我的其他配置文件:
/etc$ ls -lR mysql/
mysql/:
total 16
drwxr-xr-x 2 root root 4096 May 3 18:53 conf.d
-rw------- 1 root root 333 May 3 18:53 debian.cnf
-rwxr-xr-x 1 root root 1220 Mar 29 23:48 debian-start
-rw-r--r-- 1 root root 3504 Feb 17 16:41 my.cnf
mysql/conf.d:
total 4
-rw-r--r-- 1 root root 21 Mar 29 23:47 mysqld_safe_syslog.cnf
这里有很多默认值。您会注意到配置文件中有很多看起来很熟悉的环境变量(例如debian-start
和my.cnf
)。
您最终将需要追踪/etc
目录中配置所提供的默认设置。例如,查看您是否在/etc/mysql
和/etc/default/mysql
或甚至类似的地方有文件/etc/mysql.conf
。
进行更改后,请测试是否已复制有效的手动启动。在我的系统上,我可以使用 测试 mysql 服务器设置sudo service mysql start
。
答案2
使用 rc.local 文件作为启动命令