El error 1071 se produce cuando se intenta crear una tabla con una clave primaria o índice con una longitud superior a la permitida. A partir de la versión 5.7.9, MariaDB y MySQL admiten una longitud de clave primaria o índice de hasta 3072 bytes para las tablas InnoDB, pero depende del conjunto de caracteres que se esté utilizando.
Si está utilizando un tipo de tabla MyISAM, entonces la longitud de clave máxima es de 1000 bytes.
Aquí hay algunas maneras de resolver este problema:
1. Reducir la longitud de la clave: Puedes reducir el número de caracteres en la clave para que la longitud total sea inferior a 767 bytes.
2. Cambiar el tipo de tabla: Si está utilizando una tabla MyISAM, puedes considerar la posibilidad de cambiar a una tabla InnoDB, que admite longitudes de clave más largas. Puedes hacer esto con el comando ALTER TABLE.
3. Cambiar el conjunto de caracteres: Si estás usando un conjunto de caracteres utf8mb4, que usa hasta 4 bytes por carácter, puedes cambiar a un conjunto de caracteres que use menos bytes por carácter. Por ejemplo, el conjunto de caracteres utf8 usa hasta 3 bytes por carácter.
4. Cambiar la configuración del servidor: Puedes cambiar la configuración innodb_large_prefix en tu archivo de configuración my.cnf. Si esta configuración está habilitada, se permiten claves más largas para las tablas InnoDB.
Aquí tienes la manera de cambiar esta configuración:
```bash
[mysqld]
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_file_per_table=1
```
Después de hacer este cambio, tendrás que reiniciar el servidor para que los nuevos ajustes tengan efecto.
Después de reiniciar el servidor, puedes cambiar el formato de la tabla a ‘DYNAMIC’ o ‘COMPRESSED’ usando:
ALTER TABLE table_name ROW_FORMAT=DYNAMIC;
o
ALTER TABLE table_name ROW_FORMAT=COMPRESSED;
Por último, puede ser útil actualizar a una versión más reciente de MariaDB o MySQL, ya que las versiones más recientes soportan longitudes de clave más grandes.