Dolibarr : Différence entre versions
(Page créée avec « L'installation de la version 6.0.3 de Dolibarr échoue sous Debian Stretch avec MariaDB. Possiblement à cause d'une différence entre Mysql et MariaDB en fait. https://ww... ») |
(Aucune différence)
|
Version du 1 novembre 2017 à 22:42
L'installation de la version 6.0.3 de Dolibarr échoue sous Debian Stretch avec MariaDB. Possiblement à cause d'une différence entre Mysql et MariaDB en fait. https://www.dolibarr.fr/forum/3-installation/55051-ovh-mutualise-installation-dolibarr-3-8-2
Les indexes sur certains champs trop longs ne passent pas et renvoies des erreurs du type : DB_ERROR_1071 Specified key was too long; max key length is 767 bytes
J'ai procédé en changeant le format d'enregistrement des tables InnoDB : https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_large_prefix https://stackoverflow.com/questions/43379717/how-to-enable-large-index-in-mariadb-10 Donc il faut commencer par appliquer ces commandes globales SQL : SET GLOBAL innodb_file_format=Barracuda; SET GLOBAL innodb_file_per_table=ON; SET GLOBAL innodb_large_prefix=1;
Mais il faut aussi faire un ALTER TABLE %TABLE% ROW_FORMAT=DYNAMIC; sur chaque table. Après un premier essai d'installation infructueux, les tables sont déjà créées. En se connectant avec la commande mysql à la base, on génère la liste des altérations avec cette commande : USE INFORMATION_SCHEMA; SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM TABLES WHERE TABLE_SCHEMA = "%NOM_DE_LA_BASE";
Le format de sortie de mysql trace un rectangle autour des résultats. Je n'ai pas cherché s'il y avait une option, en passant le résultat dans un éditeur de texte j'ai viré par chercher-remplacer les barres droites, et le résultat a très bien fonctionné par un simple copier coller dans l'invite mysql.
De retour sur l'installation de dolibarr, les commandes ALTER fonctionnent désormais sans erreur !