![mysqld выдает errcode:13, потому что не может создать тестовые файлы](https://rvso.com/image/1036656/mysqld%20%D0%B2%D1%8B%D0%B4%D0%B0%D0%B5%D1%82%20errcode%3A13%2C%20%D0%BF%D0%BE%D1%82%D0%BE%D0%BC%D1%83%20%D1%87%D1%82%D0%BE%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B.png)
Новая установка 11.04. Далее я следовал всем инструкциям здесь: http://www.howtoforge.com/installing-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 сказал, что это может быть проблема с пакетом?
Спасибо, свекла
решение1
Я столкнулся с той же проблемой после обновления с 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
результаты вначало: Не удалось запустить задание
Попытка запуска вручную
mysqld
от имени обычного пользователя, как правило, не увенчается успехом (до того, как возникнет описанная выше проблема), поскольку у пользователя нет доступа к /var/lib/mysql (это можно узнать из системного журнала).Запуск mysqld от имени root пройдет успешно (не знаю почему)
решение2
mysqld должен быть запущен от имени пользователя mysql. Вам не следует запускать демон вручную. Лучше запустите его как службу, например так:
sudo service mysql start
Сообщение об ошибке указывает на то, что служба mysql не может получить доступ к определенным файлам, к которым ей не должен быть разрешен доступ в вашей пользовательской среде. Поэтому такое поведение должно быть правильным. Однако вам следует проверить, существуют ли каталоги, кто ими владеет и кто имеет к ним доступ (используйте ls -la для этой цели):
ls -la /var/lib/
ls -la /var/lib/mysql