15.5. Crear el espacio de tablas InnoDB

MySQL 5.0

15.5. Crear el espacio de tablas InnoDB

Suponiendo que se ha instalado MySQL y se editó el fichero de opciones para que contenga los parámetros de necesarios, antes de iniciar MySQL se debería verificar que los directorios indicados para los ficheros de datos y de registro (log) existen y que el servidor MySQL tiene permisos de acceso a dichos directorios. no puede crear directorios, solamente ficheros. Hay que verificar también que se tiene suficiente espacio en disco para los ficheros de datos y de registro.

Cuando se crea una base de datos , es mejor ejecutar el servidor MySQL mysqld desde la línea de comandos, no desde el envoltorio mysqld_safe o como un servicio de Windows. Cuando se lo ejecuta desde la línea de comandos, se puede ver lo que mysqld imprime y qué está ocurriendo. En Unix, simplemente debe invocarse mysqld. En Windows, hay que usar la opción .

Cuando se inicia el servidor MySQL luego de la configuración inicial de en el fichero de opciones, crea los ficheros de datos y de registro e imprime algo como lo siguiente:

InnoDB: The first specified datafile /home/heikki/data/ibdata1
did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file /home/heikki/data/ibdata1 size to 134217728
InnoDB: Database physically writes the file full: wait...
InnoDB: datafile /home/heikki/data/ibdata2 did not exist:
new to be created
InnoDB: Setting file /home/heikki/data/ibdata2 size to 262144000
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file /home/heikki/data/logs/ib_logfile0 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile0 size
to 5242880
InnoDB: Log file /home/heikki/data/logs/ib_logfile1 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile1 size
to 5242880
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
InnoDB: Started
mysqld: ready for connections

Se ha creado una nueva base de datos . Se puede conectar al servidor MySQL con los programas cliente acostumbrados, como mysql. Cuando se detiene el servidor MySQL, con mysqladmin shutdown, la salida es como la siguiente:

010321 18:33:34  mysqld: Normal shutdown
010321 18:33:34  mysqld: Shutdown Complete
InnoDB: Starting shutdown...
InnoDB: Shutdown completed

Se puede mirar en los directorios de ficheros de datos y registro y se verán los ficheros creados. El directorio de registro (log) también contiene un pequeño fichero llamado . Ese fichero resulta de la creación de la base de datos, luego de lo cual desactivó el guardado de registros (log). Cuando MySQL inicia de nuevo, los ficheros de datos y de registro ya han sido creados, por lo que la salida es más breve:

InnoDB: Started
mysqld: ready for connections

Es posible agregar la opción a , y hacer que InnoDB almacene cada tabla en su propio fichero en un directorio de bases de datos de MySQL. Consulte Sección 15.6.6, “Usar un espacio de tablas para cada tabla”.

15.5.1. Resolución de problemas en la inicialización de InnoDB

Si imprime un error de sistema operativo en una operación de ficheros, generalmente el problema es uno de los siguientes:

  • No se creó el directorio para los ficheros de datos o de registros (log) de .

  • mysqld no tiene los permisos de acceso para crear ficheros en aquellos directorios.

  • mysqld no puede leer el fichero de opciones o adecuado, y por lo tanto no ve las opciones especificadas.

  • El disco está lleno o se excedió la cuota de disco.

  • Se ha creado un subdirectorio que tiene el mismo nombre que uno de los ficheros de datos especificados.

  • Hay un error de sintaxis en o .

Si algo va mal durante el intento de de inicializar el espacio de tablas o los ficheros de registro, se deberán borrar todos los ficheros creados por . Esto comprende todos los ficheros y todos los . En caso de haber creado alguna tabla , habrá que borrar del directorio de datos de MySQL los correspondientes ficheros de estas tablas (y cualquier fichero si se están empleando múltiples espacios de tablas). Entonces puede intentarse nuevamente la creación de la base de datos . Es mejor iniciar el servidor MySQL desde una línea de comandos de modo que pueda verse lo que ocurre.