mysqld дает код ошибки:13, потому что он не может создавать тестовые файлы
Новая установка 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 сказал, что это может быть проблема пакета?
Спасибо свекла
2 ответа
mysqld должен быть запущен от имени пользователя mysql. Вы не должны запускать демон вручную. Лучше запустите его как сервис:
sudo service mysql start
Сообщение об ошибке указывает на то, что служба mysql не может получить доступ к определенным файлам, к которым ей нельзя разрешить доступ в вашей пользовательской среде. Так что это поведение должно быть правильным. Однако вам следует проверить, существуют ли каталоги, кто им владеет и кто имеет к ним доступ (для этого используйте ls -la):
ls -la /var/lib/
ls -la /var/lib/mysql
Я столкнулся с той же проблемой после обновления с 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 будет успешным (я не знаю почему)