Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Migration de MyISAM vers InnoDB, celle pour les versions 3.x de Moodle est consultable ici : Migration de MyISAM vers InnoDB et celle pour Moodle 4.x est consultable là : Migration de MyISAM vers InnoDB.

Migration de MyISAM vers InnoDB

De MoodleDocs
Aller à :navigation, rechercher

Remarque : la traduction de cet article n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Cette page devrait contenir toutes les informations nécessaires pour prendre une décision concernant le passage vers InnoDB (au lieu de MyISAM). En attendant qu'elle s'enrichisse, il peut-être utile de consulter la version anglaise, peut-être plus complète. La création de cette page fait suite à cette discussion.

Différences entre MyISAM et InnoDB

  • lisez [1]
  • InnoDB is best for data integrity, not so good for searching large files, and uses up more CPU cycles and storage space than MyISAM equivalent
  • InnoDB is much younger than MyISAM but is becoming increasingly attractive ... but because it is more complex, some utilities written for MyISAM like mysqlhotcopy may not work
  • It is perfectly OK to select InnoDB for certain tables, and MyISAM for others (based on above criteria)

Configuration MySQL

Avant de tenter de changer le type de table, vous devriez :

  • vérifier qu'InnoDB est activé. Connectez-vous à MySQL et lancez la commande SHOW ENGINES. Assurez vous que le support pour InnoDB montre "YES" ou "DEFAULT".
  • activer innodb_file_per_table si nécessaire. Ce paramètre peut être utile pour de grosses installations, mais s'applique uniquement aux nouvelles tables créées et ne peut être appliqué après coup.

Différentes façon de migrer de MyISAM à InnoDB

Il suffit d'utiliser une des méthodes ci-dessous, qui correspond le plus à votre cas, et vos possibilités.

  • run the innodb script as a webpage http://www.YOUR_MOODLE_SITE/admin/innodb.php (there might be timeout issues on large databases)
  • use the CLI script in admin/cli/mysql_engine.php (requires access to shell, and the config.php must only have one moodle instance, but has no timeout issues)
  • use PHPMyAdmin entering Structure view of a table and clicking Operations tab. Look for Storage Engine parameter. This is a tedious task due to the number of tables [2]
  • perform a database dump (e.g. mysqldump moodle_database > dump.SQL), use an editor or sed/perl/awk command to find/replace , replacing MyISAM with InnoDB. Finally, restore back in the server. (e.g. mysql < dump.SQL or equivalent)
  • Follow the process detailed here - https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip

Convertir toutes les tables MySQL de MYISAM vers InnoDB

Il est possible de convertir toutes les tables interne de Moodle, lorsque l'on utilise MySQL, de MyISAM vers InnoDB, en utilisant le script accessible à l'adresse votre-serveur/moodle/admin/innodb.php ou un script en ligne de commande.

Voir aussi