Назад | Перейти на главную страницу

Сервер mysql не запускается - логов нет

После перезапуска mysql не запускается. sudo service mysql start дает start: Job failed to start а журналы пусты, поэтому я не знаю, с чего начать. Я почти уверен, что проблемы с разрешениями решены.

Редактировать:
На всех дисках есть не менее 1 ГБ свободного места и sh -x /etc/init.d/mysql start дает мне:

+ set -e
+ basename /etc/init.d/mysql
+ INITSCRIPT=mysql
+ JOB=mysql
+ [ mysql = upstart-job ]
+ [ -z start ]
+ COMMAND=start
+ shift
+ [ -z  ]
+ ECHO=echo
+ echo Rather than invoking init scripts through /etc/init.d, use the service(8)
Rather than invoking init scripts through /etc/init.d, use the service(8)
+ echo utility, e.g. service mysql start
utility, e.g. service mysql start
+ echo

+ echo Since the script you are attempting to invoke has been converted to an
Since the script you are attempting to invoke has been converted to an
+ echo Upstart job, you may also use the start(8) utility, e.g. start mysql
Upstart job, you may also use the start(8) utility, e.g. start mysql
+ grep -q  start/
+ status mysql
+ [ -z  ]
+ [ start = stop ]
+ [ -n  ]
+ start mysql
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.105" (uid=1000 pid=3208 comm="start mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Это сообщение исходит от служебного сценария, а не от mysql. Поэтому вам нужно посмотреть на сценарий и понять, где / почему он не работает.

Сделайте это, позвонив sh -x /etc/init.d/mysqld start.

Примечание: по некоторым вопросам, таким как этот, я не вижу «добавить комментарий». У меня есть только возможность добавить ответ. Как я могу просто добавить комментарий?

Здесь та же проблема, для меня причина была в том, что my.cnf файл был перемещен из /etc/my.cnf к /etc/mysql/my.cnf, но все еще оставалась "мертвая" символическая ссылка, указывающая на /etc/my.cnf.

Проверить, если /etc/mysql/my.cnf это символическая ссылка:

user@machine:~ $ ls -l /etc/mysql/my.cnf
lrwxrwxrwx 1 root root 9 Jan 11  2011 /etc/mysql/my.cnf -> ../my.cnf

Если это символическая ссылка, проверьте, существует ли целевой файл. Если нет, удалите символическую ссылку и создайте /etc/mysql/my.cnf из /etc/mysql/my.cnf.dpkg-new или что-то в этом роде ... если оно у вас есть.

sudo unlink /etc/mysql/my.cnf
sudo mv /etc/mysql/my.cnf.dpkg-new /etc/mysql/my.cnf

P.S: Если цель символической ссылки существует, вы можете проверить dmesg | grep cnf для сообщений об ошибках apparmor.

Эта проблема может возникнуть, если файл pid все еще существует, например, после сбоя. Проверьте это и удалите, если он существует.

Расположение файла pid по умолчанию: /var/run/mysqld/mysqld.pid но в файле конфигурации можно указать другое местоположение.

Это случилось со мной. Файловая система была заполнена на 100%

Подтвердите с помощью: df -h /