серверу mysql не удается запуститься автоматически при начальной загрузке

Если я запускаю сервер кластера 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
задан 4 May 2012 в 03:55

2 ответа

использовать файл rc.local для команд запуска

0
ответ дан 4 May 2012 в 03:55

Найдите свою ошибку, установив 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.

0
ответ дан 4 May 2012 в 03:55

Другие вопросы по тегам:

Похожие вопросы: