mysqld дает код ошибки: 13, потому что он не может создавать тестовые файлы

Новая установка от 11.04. Затем я следовал всем инструкциям здесь: http://www.howtoforge.com/install-apache2-with-php5-and-mysql-support-on-ubuntu-11.04-lamp

Теперь, когда я запускаю mysqld, я получаю эту ошибку:

makara@rahu:~$ mysqld
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
111103 13:39:37 [ERROR] Aborting
111103 13:39:37 [Note] mysqld: Shutdown complete

Кто-то в IRC сказал, что это может быть проблема с пакетом ??

Спасибо, свекла

6
задан 4 November 2011 в 17:54

2 ответа

Я столкнулся с той же проблемой после обновления с Oneiric до Precise, которое обновляет MySQL с 5.1 до 5.5.

В моем случае проблема заключалась в том, что

/etc/apparmor.d/local/usr.sbin.mysqld

отсутствовал, хотя он был включен из

/etc/apparmor.d/usr.sbin.mysqld

по умолчанию. Простой

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld

решил проблему для меня.

Для тех, кто ищет: лог-файл, содержащий интересную информацию, называется / var / log / upstart / mysql. В / var / log / mysql (* | / *)

ничего не будет содержаться:

  • sudo service mysql start приводит к

    [ 1116] start: задание не удалось запустить

  • Попытка вручную запустить mysqld обычного пользователя не удастся, как обычно (до того, как вышеприведенная проблема вступит в игру), поскольку пользователь не ' У него нет доступа к / var / lib / mysql (это можно найти в системном журнале).

  • Запуск mysqld от имени root будет успешным (я не знаю почему)

0
ответ дан 4 November 2011 в 17:54

mysqld должен быть запущен от имени пользователя mysql. Вы не должны запускать демон вручную. Лучше запустить его как службу, подобную этой:

sudo service mysql start

В сообщении об ошибке указывается, что служба mysql не может получить доступ к определенным файлам, доступ к которым в вашей пользовательской среде запрещен. Так что это поведение должно быть правильным. Тем не менее, вы должны проверить, существуют ли каталоги, кто им владеет и кто имеет к ним доступ (для этого используйте ls -la):

ls -la  /var/lib/
ls -la  /var/lib/mysql
0
ответ дан 4 November 2011 в 17:54

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

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