Síntomas
La migración resulta fallida y aparece el siguiente error en el interfaz de Parallels Plesk Panel:.....
Failed deployment of database Mambo-1676625571 (domain DOMAIN.TLD)
Execution of /usr/local/psa/admin/sbin/cid_unpacker /usr/local/psa/PMM/var/2009-01-29-22.55.48.294135 failed with return code 1.
Stdin is
db
Can not deploy site application Mambo-4.5.2.3-4 on domain DOMAIN.TLD
.....
En el registro de migraciones también aparece el siguiente error:
.....
[06:41:04|INFO:27701:p.log] ++ user1676625571 database user
[06:41:04|INFO:27701:p.log] Executing utility: /usr/local/psa/admin/sbin/cid_unpacker /usr/local/psa/PMM/var/2009-01-29-22.55.48.294135
[06:41:04|INFO:27701:p.log] ++ Mambo-1676625571 database
[06:41:04|INFO:27701:p.log] FailedDatabaseDeployment: Failed deployment of database Mambo-1676625571 (domain DOMAIN.TLD) [./databases.cpp:187]
Inner exception:
ExecCmd::ExFailed: Execution of /usr/local/psa/admin/sbin/cid_unpacker /usr/local/psa/PMM/var/2009-01-29-22.55.48.294135 failed with return code 1.
Stdin is
db^@Mambo-1676625571.mysql:gzipped^@Mambo-1676625571^@mysql^@admin^@set12^@localhost^@3306
Stderr is
Runtime error during db: (1, '', 'ERROR 1071 (42000) at line 323: Specified key was too long; max key length is 1000 bytes\n')
One more attempt
Runtime error during db: (1, '', 'ERROR 1071 (42000) at line 323: Specified key was too long; max key length is 1000 bytes\n')
One more attempt
Runtime error during db: (1, '', 'ERROR 1071 (42000) at line 323: Specified key was too long; max key length is 1000 bytes\n')
One more attempt
Runtime error during db: (1, '', 'ERROR 1071 (42000) at line 323: Specified key was too long; max key length is 1000 bytes\n')
.....
Causa
La causa del problema es el error Specified key was too long; max key length is 1000 bytes.Hay una tabla en la base de datos Mambo-1676625571 que define llaves desde valores elevados.
De acuerdo con el informe de este error, MySQL no permite llaves únicas de más de 1000 bytes: http://bugs.mysql.com/bug.php?id=4541.
Debido a su diseño, las utilidades del CLI de Parallels Plesk Panel indican el conjunto de caracteres utf8 en el momento de la creación de la base de datos Mambo-1676625571, aunque el conjunto de caracteres del servidor sea latin1.
Resolución
Si desea restaurar la base de datos que experimentó el error de restauración de dbname, cambie el CHARACTER SET a 'latin1' en la estructura de la base de datos.Existen dos formas de restaurar la base de datos:
1. Importe la base de datos manualmente:
- acceda a MySQL y elimine la base de datos problemática (estará allí con tablas restauradas de forma parcial)
- vuelva a crear la base de datos con
mysql> CREATE DATABASE dbname CHARACTER SET = latin1;- vuelva a cargar el volcado de la base de datos:
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` dbname < dbname.sql2. Ejecute la migración en modo de importación y cambie CHARACTER en el volcado de migración antes de proceder con la restauración.
Añada la línea {DEFAULT CHARACTER SET latin1;} al script de creación de tablas en el archivo de volcado.