Generalidades
Lo siguiente te ayudará a identificar y corregir los errores de importación de bases de datos más comunes.
Cómo corregir errores comunes
Las siguientes secciones describen los errores 1044 y 1027 y cómo solucionarlos.
Corregir el ERROR 1044
Las bases de datos MySQL se pueden exportar en un solo archivo el cual se puede usar para migrar la base de datos a otra compañía de alojamiento luego.
A menudo, este archivo de MySQL contiene una declaración CREATE DATABASE y una USE. Estas declaraciones están destinadas a automatizar el proceso de migración de la base de datos a una nueva ubicación. Sin embargo, intentar importar tu base de datos a DreamHost con dicho archivo fallará ya que no tiene los permisos CREATE DATABASE. Revisa este artículo para más información.
Cuando importas una base de datos con estas declaraciones a través de SSH o phpMyAdmin, aparece el siguiente mensaje de error:
ERROR 1044 (42000): Access denied for user 'your_user_name'@'yourhost/hostmask' to database 'newdbname'
Este mensaje de error indica que no tienes permisos suficientes para crear la nueva base de datos la cual es causada por la declaración CREATE DATABASE en el archivo MySQL que está siendo importado.
La única manera de crear una base de datos en DreamHost es en el panel. Debido a esto, la declaración CREATE DATABASE en tu archivo MySQL exportado ni siquiera es necesaria.
La solución
Para resolver este inconveniente:
- Abre el archivo MySQL en un editor de texto (no en un procesador de textos, como MS Word).
- Elimina las líneas que comienzan con CREATE DATABASE y USE. Por ejemplo:
CREATE DATABASE `newdbname` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_c$ USE `newdbname`;
- y
USE `newdbname`;
- El texto exacto de la instrucción CREATE DATABASE difiere según el nombre de la base de datos y el juego de caracteres utilizado.
- Asegúrate de eliminar todo desde el comienzo de la línea, incluyendo el punto y coma al final de la línea.
- Una vez que hayas eliminado estas declaraciones, guarda tu archivo MySQL editado y luego intenta importar de nuevo.
Corregir el ERROR 1227
Si restauras una copia de seguridad de MySQL en una base de datos con otro usuario y tienes algunas 'vistas' en tu base de datos, tendrás un error similar a lo siguiente:
ERROR 1227 (42000) at line 694: Access denied; you need the SUPER privilege for this operation.
Deberás eliminar el DEFINER mencionado en el archivo .sql en la línea especificada en el error.