Recientemente actualicé mi servidor de base de datos provisional de MySQL 5.0.84 a 5.1.72. Estoy intentando restaurar mysqldump después de la actualización. El nombre de la base de datos en el volcado es gss-app
. Pero el nombre de la carpeta de la base de datos /var/lib/mysql
resultó ser gss@022dapp
, pero cuando inicio sesión en mysql usando mysql -u root -p
y escribo show databases;
, aparece el nombre de la base de datos como gss-app
único y puedo Use Database gss-app
enumerar las tablas usando show tables
el comando.
La restauración falló con un error Got a packet bigger than --max_allowed_packet size
. Esa vez, la base de datos se restauró parcialmente y aproveché la oportunidad para cambiar el nombre de la gss@022dapp
carpeta gss-app
e iniciar sesión en MySQL Shell.
Enumeró el nombre de la base de datos @mysql@gss-app
y no pude acceder a la base de datos. Ahora estoy ejecutando la restauración de la base de datos una vez más --max_allowed_packet_size=1024M
y veo que la gss@022dapp
carpeta se creó en /var/lib/mysql
.
¿Debería preocuparme por el nombre de la carpeta /var/lib/mysql
? ¿O puedo usar un nombre de base de datos diferente durante la restauración?
Respuesta1
Específicamente a su pregunta sobre el uso de un nombre diferente durante la restauración: con mysqldump puede hacer mysqldump databasename
o mysqldump --databases databasename
. El primero no incluye ninguna create db
declaración, el segundo sí.
Cuando haya realizado el volcado con la declaración anterior, puede crear manualmente una nueva base de datos y cargar el volcado con algo como mysql newdbname < dump.sql
. En el último caso, puede simplemente abrir su archivo de volcado y cambiar el nombre.
Una nota al margen, creo que es un mal diseño por mysqldump
parte de MySQL tener esta diferencia, por cierto. Si realiza una copia de seguridad sin la --databases
declaración, primero debe crear una base de datos antes de poder restaurar. Y esa base de datos podría tener un juego de caracteres o una clasificación diferente a la que tenía originalmente la base de datos. En mi opinión, si volcas una base de datos, debería contener todos los datos y metadatos. Lo mismo ocurre con tener que suministrar --routines
y --events
. Puedo imaginar opciones como --no-routines
pueden ser útiles, pero de forma predeterminadano¿Rutinas de dumping? Mmm.