web-dev-qa-db-fra.com

mysqld donne errcode: 13 car il ne peut pas créer de fichier de test

Nouvelle installation du 11.04. Ensuite, j'ai suivi toutes les instructions ici: http://www.howtoforge.com/installing-Apache2-with-php5-and-mysql-support-on-ubuntu-11.04-lamp

Maintenant, quand je lance mysqld, j'obtiens cette erreur:

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

Quelqu'un sur IRC a dit qu'il pourrait s'agir d'un problème de paquetage ??

Merci betterave

7
caduceus

mysqld devrait être exécuté en tant qu'utilisateur mysql. Vous ne devez pas exécuter le démon manuellement. Mieux vaut commencer comme service comme ceci:

Sudo service mysql start

Le message d'erreur indique que le service mysql ne peut pas accéder à certains fichiers auxquels il ne devrait pas être autorisé à accéder dans votre environnement utilisateur. Donc, ce comportement devrait être correct. Cependant, vous devriez vérifier si les répertoires existent, à qui ils appartiennent et qui y a accès (utilisez ls -la à cette fin):

ls -la  /var/lib/
ls -la  /var/lib/mysql
4
Michael K

J'ai rencontré le même problème après la mise à niveau de Oneiric vers Precise, qui met à niveau MySQL de la version 5.1 à la version 5.5.

Dans mon cas, le problème était que

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

manquait, même si elle était incluse dans

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

par défaut. Un simple

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

résolu le problème pour moi.

Pour ceux qui cherchent: le fichier journal qui contient les informations intéressantes est/var/log/upstart/mysql. Il n'y aura rien dans/var/log/mysql (* |/*)

Ce que vous voyez peut inclure:

  • Sudo service mysql start se traduit par

    start: le travail n'a pas pu démarrer

  • Essayer manuellement de démarrer mysqld en tant qu'utilisateur normal échouera normalement (avant que le problème ci-dessus ne soit résolu), car l'utilisateur n'a pas accès à/var/lib/mysql (cela se trouve dans le syslog).

  • Démarrer mysqld en tant que root réussira (je ne sais pas pourquoi)

6
Confusion