Nombre de la base de datos MySQL con guión

Nombre de la base de datos MySQL con guión

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/mysqlresultó ser gss@022dapp, pero cuando inicio sesión en mysql usando mysql -u root -py escribo show databases;, aparece el nombre de la base de datos como gss-appúnico y puedo Use Database gss-appenumerar las tablas usando show tablesel 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@022dappcarpeta gss-appe iniciar sesión en MySQL Shell.

Enumeró el nombre de la base de datos @mysql@gss-appy 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=1024My veo que la gss@022dappcarpeta 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 databasenameo mysqldump --databases databasename. El primero no incluye ninguna create dbdeclaració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 mysqldumpparte de MySQL tener esta diferencia, por cierto. Si realiza una copia de seguridad sin la --databasesdeclaració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 --routinesy --events. Puedo imaginar opciones como --no-routinespueden ser útiles, pero de forma predeterminadano¿Rutinas de dumping? Mmm.

información relacionada