Error "Specified key was too long; max key length is 1000 bytes" al realizar una migración

Created:

2016-11-16 13:20:45 UTC

Modified:

2017-04-24 11:22:57 UTC

0

Was this article helpful?


Have more questions?

Enviar una solicitud

Error "Specified key was too long; max key length is 1000 bytes" al realizar una migración

Síntomas

La migración no puede completarse y en el interfaz de Plesk se obtiene el siguiente error:

 Failed deployment of database Mambo-1676625571 (domain example.com)

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 example.com

En el registro de migración se aprecia 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 example.com) [./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\

') 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\') 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\') 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\')

Causa

La causa del problema es el siguiente error:

Specified key was too long; max key length is 1000 bytes.

En la base de datos Mambo-1676625571 existe una tabla 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. Para más información, visite http://bugs.mysql.com/bug.php?id=4541 .

Debido a su diseño, las utilidades del CLI de Plesk especifican el conjunto de caracteres utf8 en el momento de la creación de la base de datos Mambo-1676625571 , incluso en el caso de que el conjunto de caracteres del servidor sea latin1 .

Resolución

Para restaurar bases de datos que no puedan restaurar dbname, cambie el conjunto de caracteres a "latin1" en la estructura de la base de datos.

Existen dos formas de restaurar la base de datos:

  1. Importando la base de datos de forma manual:

  2. Acceda a MySQL y elimine la base de datos que experimenta el problema. Esta estará allí con tablas restauradas de forma parcial.

  3. Vuelva a crear la base de datos con lo siguiente:
    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.sql
  1. Efectuando la migración en modo de importación, cambiando el conjuntos de caracteres 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 del volcado.

¿Tiene más preguntas? Enviar una solicitud
Inicie sesión para dejar un comentario.