![mysqld da errorcode:13 porque no puede crear archivos de prueba](https://rvso.com/image/1036656/mysqld%20da%20errorcode%3A13%20porque%20no%20puede%20crear%20archivos%20de%20prueba.png)
Nueva instalación del 11.04. Luego seguí todas las instrucciones aquí: http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-ubuntu-11.04-lamp
Ahora cuando ejecuto mysqld me sale este error:
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
¿Alguien en IRC dijo que podría ser un problema con el paquete?
gracias remolacha
Respuesta1
Me encontré con el mismo problema después de la actualización de Oneiric a Precise, que actualiza MySQL de 5.1 a 5.5.
En mi caso el problema fue que
/etc/apparmor.d/local/usr.sbin.mysqld
faltaba, a pesar de que estaba incluido desde
/etc/apparmor.d/usr.sbin.mysqld
por defecto. Un simple
sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
resolvió el problema para mí.
Para aquellos que buscan: el archivo de registro que contiene información interesante es /var/log/upstart/mysql. No habrá nada en /var/log/mysql(*|/*)
Lo que ve puede incluir:
sudo service mysql start
resultados eninicio: el trabajo no pudo iniciarse
Intentar iniciar manualmente
mysqld
como usuario normal fallará como de costumbre (antes de que entre en juego el problema anterior), porque el usuario no tiene acceso a /var/lib/mysql (esto se puede encontrar en el syslog).Iniciar mysqld como root tendrá éxito (no sé por qué)
Respuesta2
mysqld debe ejecutarse como usuario mysql. No debes ejecutar el demonio manualmente. Mejor iniciarlo como un servicio como este:
sudo service mysql start
El mensaje de error señala que el servicio mysql no puede acceder a ciertos archivos a los que no se le debe permitir acceder en su entorno de usuario. Entonces este comportamiento debería ser correcto. Sin embargo, debe verificar si los directorios existen y quién es su propietario y quién tiene acceso a ellos (use ls -la para este propósito):
ls -la /var/lib/
ls -la /var/lib/mysql