9 votos

El cambio de directorio de datos de MySQL en Ubuntu Server 10.04

Yo estaba recibiendo el siguiente error al intentar cambiar el directorio de datos en un servidor ubuntu 10.04.

100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

8voto

Bob Puntos 34449

Después de cierta confusión general acerca de los permisos que el OP se dio cuenta de que el problema no era que él no tenía los permisos y las rutas de los derechos, sino que AppArmor fue la prevención de la base de datos MySQL desde la lectura y la escritura a la nueva ubicación.

Esta es su solución:

La primera parada de MySQL, por lo que nada raro sucede mientras estás jugando:

$ sudo stop mysql

A continuación, mueva todos los directorios de base de datos a su nuevo hogar:

$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/

No mover los archivos, que serán generados por mysql, basta con mover las carpetas (que son las bases de datos).

A continuación, pida cortésmente AppArmor para permitir mysql para utilizar la nueva carpeta:

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
  >> add lines
     /new-mysql-dir/ r,
     /new-mysql-dir/** rwk,

A continuación, decirle a mysql que el datadir se ha movido:

$ sudo vim /etc/mysql/my.cnf 
  >> change the line
     datadir=/var/lib/mysql
  >> to
     datadir=/my-new-db-dir/

NOTA: Dependiendo de su configuración de base de datos que usted podría necesitar un cambio de innodb-datos-casa-dir etc. así.

A continuación, reinicie AppArmor para que lea la nueva configuración:

$ sudo /etc/init.d/apparmor restart

Y puesta en marcha de MySQL de nuevo utilizando la datadir:

$ sudo start mysql

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: