Assistance technique

Conversion InnoDB vers Barracuda

 
Avatar Christophe G.
Conversion InnoDB vers Barracuda
 

Bonjour,

A l'installation de Moodle (v3.2), le "check" réalisé à la fin de l'instal' me dit qu'il faut que je convertisse ma base de données au format Barracuda.

("Your database has tables using Antelope as the file format. Full UTF-8 support in MySQL and MariaDB requires the Barracuda file format. Please convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.")

Et de là j'ai un gros problème et je tourne en rond clin d’œil :

Je suis chez OVH et la version de php "global" est la 7.0.15. Oui mais...

Quand j'essaie de lancer le script admin/cli/mysql_compressed_rows.php, celui-ci refuse de s'exécuter et j'ai le message d'erreur (terminal) :

"Moodle 3.2 or later requires at least PHP 5.6.5 (currently using version 5.4.45). Some servers may have multiple PHP versions installed, are you using the correct executable?" !!!!!!!

J'essaie de contourner le pb en lançant des commandes SQL sur la base de données mais comme je suis sur un hébergement mutualisé.... je n'ai pas les droits de  SUPER USER et ne peut donc pas exécuter lesdites commandes...

Merci de vos réponses,

Christophe


 
Moyenne des évaluations  -
Daniel
Re: Conversion InnoDB vers Barracuda
Groupe Moodleurs particulièrement utiles

Bonjour,

la plupart de ceux qui sont hébergés en mutualisé rencontrent actuellement le meme problème.

Si cela peut vous rassurer j'ai plusieurs Moodle qui "tournent" depuis longtemps sans présenter de défaut bloquant lié à ce point.

Les demandes faites à mon hébergeur m'ont apporté des réponses auxquelles je n'ai pas compris grand-chose.

Mon espoir était qu'une version de Moodle nous offrirait une fonction de conversion automatique, comme cela s'est fait auparavant pour d'autres sujets...

Meme le plugin Adminer ou l'accès à PhPmyadmin ne permet pas de lancer la requete nécessaire semble-t-il...

A suivre...donc...

 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Conversion InnoDB vers Barracuda
Groupe DéveloppeursGroupe Moodleurs particulièrement utilesGroupe Traducteurs

Attention Daniel, ton message n'apporte aucun éclaircissement et incite à chercher là où il n'y a vraisemblablement pas de réponse. triste

 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Conversion InnoDB vers Barracuda
Groupe DéveloppeursGroupe Moodleurs particulièrement utilesGroupe Traducteurs

Bonjour,

Le problème est peut-être que vous utilisez MariaDB et pas MySQL, et donc mal renseigné votre config.php. Cette question est récurrente sur les forums, voir ici : https://moodle.org/mod/forum/discuss.php?d=324284#p1302611

 
Moyenne des évaluations  -
Avatar Olivier C
Re: Conversion InnoDB vers Barracuda
 

Bonjour,

Le message d'erreur indiqué par Christophe fait référence à un problème de version de PHP plutôt qu'à un problème de version de Mysql ou MariaDB.

"Moodle 3.2 or later requires at least PHP 5.6.5 (currently using version 5.4.45)"

Christophe : d'après ce que je comprends, vous avez lancé une commande de type : php admin/cli/mysql_compressed_rows.php depuis un terminal, c'est bien ça ?

Si c'est bien le cas pouvez vous lancer les commandes suivantes et nous indiquer le résultat :

  1. which php     qui indiquera l'endroit où le système va chercher l'exécutable php, et éventuellement sa version
  2. /usr/local/php7.0/bin/php admin/cli/mysql_compressed_rows.php

N'ayant pas de compte sur un serveur OVH mutualisé je ne peux pas garantir que la 2ème commande est bien adaptée à votre environnement mais ça ne coûte strictement rien d'essayer. Dans le pire des cas ça vous répondra que  /usr/local/php7.0/bin/php n'a pas été trouvé.

L'idée ici est d'aller chercher une version spécifique de php, différente de celle qui est appelé par défaut (la 5.4.45) lorsque vous lancez simplement la commande "php" sur votre environnement mutualisé, sans spécifier le chemin complet de type "/usr/local/phpVXYZ/bin/php


Olivier

 
Moyenne des évaluations Utile (1)
Avatar Christophe G.
Re: Conversion InnoDB vers Barracuda
 

Daniel, Nicolas, Olivier,

Merci de votre support et réponses.


@Daniel : Je prends bonne note que selon vous le pb de format en question ne semble pas être « bloquant » pour la suite mais, par prudence, j’aimerais autant être complètement en phase avec les prérequis techniques de Moodle 3.2 clin d’œil

En fait, cela semble plus un « impératif » qu’un simple « warning » de la part de l’installeur Moodle… Celui-ci m’interdisant tout simplement d’aller plus loin dans l’installation et me laissant seulement le choix de corriger ce pb de InnoDB—>Barracuda, refaire un « refresh » depuis mon navigateur, et poursuivre ensuite normalement.


Quant aux Plugins d’administration qui me permettraient potentiellement de réaliser certaines actions sur la base de données, je n’y pense même pas pour l’instant, Moodle n’étant donc pas « fonctionnel » ;-(((


@Nicolas : Non, j’utilise bien une BdD MySQL version 5.6.34… !


@Olivier : Vous avez précisément ciblé mon pb : Je pense que Moodle exécute le code dans une « instance » PHP qui n’est pas celle réellement en place sur mon serveur (à vrai dire, la couche OPCache qui semble être mise en place par OVH m’est complètement inconnue…..)

Donc, votre piste de « chercher » quelle version de PHP est vraiment appelée par PHP est une super bonne idée. De là, les résultats sont :


Which php me donne : /usr/local/bin/php


Mais, de là, je n’ai PAS la possibilité d’exécuter le fameux script mysql_compressed_rows.php car je n’ai ensuite AUCUN dossier sous /usr/local/php7.0/bin (mais uniquement des fichiers : 

pear  peardev  pecl  phar  phar.phar  php  php-cgi  php-config  phpdbg  phpize).


Bon. Je m’y prends peut-être très mal pour vous expliquer et vous donner les bonnes infos, alors je vais tenter d’être plus « précis » quant à ma config :


Je suis sur du Mutualisé et j’ai donc 2 branches sur le serveur :

— L’une /usr/local/php7.0 (et, au même niveau sous local/, php5.3/, php5.4/, php5.5/ et php5.6/, puisque je pense pouvoir choisir telle ou telle version pour mon hébergement)

— L’autre, /home/(monprojet)/www/(recette)/moodle/admin/cli/ etc.


Merci de vos prochaines analyses et support respectifs,


Christophe


 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Conversion InnoDB vers Barracuda
Groupe DéveloppeursGroupe Moodleurs particulièrement utilesGroupe Traducteurs

Oui, j'avais répondu trop vite, sans bien lire rouge et suis tombé dans le travers que je reprochais à Daniel (re rouge).

J'imagine que vous devriez contacter le support technique de votre hébergeur pour lui demander comment appeler php7 en ligne de commande, puisqu'il semble que seule une version plus ancienne ne puisse être utilisée dans ce mode.

 
Moyenne des évaluations  -
C'est moi :-)
Re: Conversion InnoDB vers Barracuda
Groupe Moodleurs particulièrement utilesGroupe Traducteurs

Bonjour Christophe,

En relisant attentivement le message d'erreur rencontré, je crois comprendre quelque chose : jusqu'à présent, l'information sur le format Barracuda n'était qu'un avertissement, alors que tu sembles indiquer que c'est bloquant.

Hors, comme j'en parlais récemment dans cette discussion à propos de l'interclassement et de sa modification, Moodle 3.1.5 et Moodle 3.2.2 réalisent maintenant l'installation (neuve) avec l'encodage utf8mb4 et l'interclassement utf8mb4_unicode_ci, pour un support UTF-8 complet.

Mais cela nécessite des prérequis complémentaires, comme le format Barracuda, qui n'est pas forcément possible (actuellement) chez de nombreux hébergeurs ! Et du coup, ce qui n'était qu'un avertissement devient bloquant...

En tout cas, c'est comme ça que j'interprète les choses (et je peux me tromper). C'est la partie "Full UTF-8 support in MySQL and MariaDB" du message d'erreur qui m'a mis sur cette voie.

Mais si effectivement l'installation ne peut plus se faire à cause de prérequis techniques insuffisants, c'est quand même dommage. Ils auraient éventuellement pu prévoir, dans ce cas, d'utiliser le mode utf8 et l'interclassement utf8_unicode_ci... peut-être faudra(it) il ouvrir une demande dans le traqueur.

Pour valider cette théorie, il faudrait que tu confirmes que c'est bien la version 3.2.2 que tu essaies d'installer, et nous dire si l'installation de Moodle 3.2.1 se passe sans problème.

Séverin

 
Moyenne des évaluations  -
Avatar Olivier C
Re: Conversion InnoDB vers Barracuda
 

Bonjour,

Le résultat de la commande "which php" permet de voir que l'exécutable php appelé lorsqu'on ne précise pas le chemin en entier est : /usr/local/bin/php

Le fait que vous ayez plusieurs répertoires sous /usr/local/phpX.Y est une excellent chose, cela signifie que votre hébergeur vous donne accès à plusieurs versions de php en ligne de commande. La version par défaut en ligne de commande est la version 5.4.45 (c'est celle qui est utilisée lorsque vous saisissez juste "php") alors que la version par défaut exécuté par le serveur web apache de votre hébergeur est la 7.0.15

Afin d'utiliser en ligne de commande la même version que le serveur web qui fait tourner Moodle, vous devez saisir le chemin complet vers l'exécutable php, suivi du chemin vers votre fichier php à exécuter.

D'après ce que vous indiquez, la commande complète à lancer est donc :

/usr/local/php7.0/bin/php  /home/(monprojet)/www/(recette)/moodle/admin/cli/mysql_compressed_rows.php


Résultat des courses après exécution de cette commande (après bien entendu avoir pris soin de remplacer (monprojet) et (recette) par les vrais noms des répertoires permettant d'accéder au fichier mysql_compressed_rows.php) ?

Olivier


 
Moyenne des évaluations Utile (1)
Avatar Christophe G.
Re: Conversion InnoDB vers Barracuda
 

Nicolas, Séverin, Olivier,

Merci de votre support et réponses.


@Nicolas : Pas de soucis clin d’œil

J’ai bien entendu ouvert un ticket auprès du support OVH…. pour lequel je ne manquerai pas de vous transmettre la réponse dès qu’ils me répondront ;-((((


@Séverin :

Oui, tu as tout compris, le message n’est pas qu’un simple « warning » pour lequel Moodle me dit « Attention, il faudra corriger ce pb blablabla afin de garantir le bon fonctionnement de l’appli » MAIS bel et bien un « blocage » qui ne me permet pas de poursuivre l’installation ;-(((( !

(Dans la langue de Shakespeare, cela donne donc de la part de Moodle exactement cela : « You must solve all the environmental problems (errors) found above before proceeding to install this Moodle version! »)


Mais de là, j’étoffe donc mes infos en vous soumettant deux autres points qui peut-être vous mettront la puce à l’oreille :


1/ J’ai installé, chez ce même hébergeur, la même version de Moodle 3.2 sur du MySQL v5.5 et donc non pas 5.6 comme pour l’instance sur laquelle je suis bloqué avec cette histoire de format InnoDB—>Barracuda), et je n’ai sur cette première AUCUN problème (tout fonctionne bien, et je n’ai donc pas eu ce message bloquant lors de l’installation…. Faite 2 ou 3 jours auparavant) !!!!???

Est-ce que cela vous met sur une piste ?


J’ai d’ailleurs bien tenté de refaire l’installation complète en repartant sur du MySQL v5.5 mais… cela m’a été impossible car dans mon offre (la seconde donc), je n’ai plus le choix entre MySQL v5.5 ou v5.6 MAIS uniquement v5.6 (allez savoir pourquoi d’ailleurs…..)


2/ J’ai d’ailleurs un second « warning » à l’installation (juste en dessous du premier concernant InnoDB—>Barracuda), qui est le suivant : 

« For full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_large_prefix' to 'ON'. See the documentation for further details. »


@Séverin, je te confirme bien volontiers que la version que j’installe est la Moodle 3.2.2 (Build: 20170313)


@Séverin : Je tente de réinstaller le tout en v3.2.1 demain ou après demain (ne suis pas dispo avant ;-œuf et reviens vers vous tous pour vous notifier le résultat…


@Olivier :

Je n’ai pas de « dossier » php sous /usr/local/php7.0/bin/ !!!  ;-(

En fait, FYI, je n’ai aucun dossier, juste des fichiers.


Oui, OVH me permet de choisir quelle version de PHP je souhaite utiliser mais… sans maladresse aucune, le tout semble peu opérationnel clin d’œil


Merci de nouveau,

Christophe


 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Conversion InnoDB vers Barracuda
Groupe DéveloppeursGroupe Moodleurs particulièrement utilesGroupe Traducteurs

Bonjour Christophe,

Pour info, un retour d'expérience: lors d'une de mes dernières installations pour tester, j'ai été eu tant le message bloquant « You must solve all the environmental problems (errors) found above before proceeding to install this Moodle version!» que le message « For full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_large_prefix' to 'ON'. See the documentation for further details.». J'ai résolu en configurant adéquatement ma version de PHP (voir la doc à ce sujet : Support unicode complet pour MySQL).

Je vais analyser si c'est dû à un environnement serveur particulier (combinaison de versions PHP et MySQL/MariaDB et de Moodle), et reviendrai rapporter cela ici.

> Je n’ai pas de « dossier » php sous /usr/local/php7.0/bin/

La commande indiquée par Olivier est AMHA la bonne. Elle ne donne pas un dossier, mais un exécutable avec tout le chemin d'accès. Il faudrait quand même l'essayer. Je la répète ci-dessous (pas oublier de changer (monprojet) et (recette) sourire) :

/usr/local/php7.0/bin/php /home/(monprojet)/www/(recette)/moodle/admin/cli/mysql_compressed_rows.php

Bon courage !

Nicolas

 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Conversion InnoDB vers Barracuda
Groupe DéveloppeursGroupe Moodleurs particulièrement utilesGroupe Traducteurs

Je viens de tester avec Moodle 3.1.5+, puis Moodle 3.2.2+.

Mon environnement :

  • Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux (Jessie, donc)
  • MySQL 5.5.54
  • PHP 5.6.30

Réglages par défaut de MySQL:

  • character-set-database: utf8
  • collation_database: utf8_general_ci
Résultats

Dans les 2 cas, aucun problème d'installation. Les tables s'installent dans les encodages indiqués ci-dessus. Je peux passer au format Barracuda avec le script adéquat.

En revanche, lorsque je lance le script pour changer en utf8mb4, il m'est demandé de modifier la configuration de MySQL ('utf8mb4_unicode_ci' requires the setting 'innodb_large_prefix' be set to 'ON').

Conclusion

Il semble que Moodle 3.2.x n'impose pas de modifier les réglages de MySQL pour s'installer, mais le nécessite pour changer l'encodage.

 
Moyenne des évaluations  -
Avatar Christophe G.
Re: Conversion InnoDB vers Barracuda
 

Bonsoir Nicolas,

Merci beaucoup de ton analyse, de tes essais et conclusions.

C'est très intéressant.

@Olivier : Toutes excuses... J'ai honte, je ne savais pas qu'il était possible d'appeler des commandes de la sorte. Mais, donc, la commande que tu m'as conseillé d'exécuter (et que Nicolas m'a confirmé de son côté dans son dernier message) est bel et bien "OK". 

Je vous en livre à tous les 2 le résultat :


La commande avec le paramètre -i me donne :

------

Database version:      5.6.34-log

Database name:         trainingphmoodr1

Database engine:       InnoDB

innodb_file_per_table: ON

innodb_file_format:    Antelope

------


La commande avec le paramètre -l (ne) me donne : 

RIEN !


La commande avec le paramètre -s me donne :

------

No changes necessary

------


et la commande avec le paramètre -f me donne aussi et donc légitimement, de la même façon :

------

No changes necessary

------


Sauf erreur de ma part, je vais donc m'orienter vers ton point " Support unicode complet pour MySQL" , Nicolas, car le pb originel serait donc situé plus à ce niveau là si je comprends bien tes explications.

Sauf si, bien sûr, là encore j'ai manqué une étape ou une commande ...?


Bien à vous et Merci de nouveau

Christophe





 
Moyenne des évaluations  -
Avatar Christophe G.
Re: Conversion InnoDB vers Barracuda
 

Bonsoir à tous,

Quelques news suite à mes derniers messages, et vos précieuses réponses, concernant le "blocage" de l'installation de Moodle sur mon hébergement mutualité chez OVH.

Une personne du support OVH (qui se reconnaitra et que je remercie de nouveau) a trouvé la solution à mon pb. Celle ci rejoint bien sûr parfaitement les infos de Nicolas et Olivier :

Il m'a fallu modifier mon fichier config.php en remplaçant, dans celui-ci 

’dbcollation' => ‘utf8mb4_unicode_ci', par : 'dbcollation' => ‘utf8_unicode_ci'.

Une fois cette modification faite, l'installation s'en voit débloquée et celle-ci se poursuit sans pb.

Mais, par contre, n'ayant pas d'accès suffisant sur la base de données, je retrouve en final, à la fin de l'installation, un "warning" concernant le paramètre "unsupported_db_table_row_format" dans la page de vérification de l'installation de Moodle... 

Ne pouvant pas le corriger d'une façon ou d'une autre, j'espère que celui-ci n'engendrera pas de pb bloquants par la suite !



 
Moyenne des évaluations Utile (1)