Cependant, par défaut, le moteur de stockage de la base de données InnoDB MySQL n'est pas activé dans le fichier de configuration my.cnf. Si un webmaster envisage d'utiliser les fonctionnalités d'InnoDB, telles que les relations de table un à plusieurs ou plusieurs à plusieurs sur des contraintes de clé étrangère, ou des commandes sécurisées pour les transactions telles que les capacités de validation, d'annulation et de récupération après incident.
Pour activer la prise en charge du serveur MySQL sur le moteur de stockage InnoDB, recherchez le fichier de configuration "my.cnf" (normalement dans /installation_path /xampp/mysql/bin/), et modifiez le répertoire my.cnf avec n'importe quel éditeur de texte tel que vi.
Recherchez et localisez chacune des lignes suivantes (sauf les lignes en italique où ils sont des commentaires):
- Comment the following line to unskip and use InnoDB skip-innodb - Uncomment the following options for InnoDB database if you are using InnoDB tables. #innodb_data_home_dir = C:/xampp/xampp/mysql/data/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/ #innodb_log_arch_dir = C:/xampp/xampp/mysql/data/ - Uncomment the lines and set innodb_buffer_pool_size up to 50% - 80% of RAM for optimization of InnoDB databases, try not to memory usage too high. #set-variable = innodb_buffer_pool_size=16M #set-variable = innodb_additional_mem_pool_size=2M - Uncomment the lines and set innodb_log_file_size to 25% of InnoDB buffer pool size for optimisation. #set-variable = innodb_log_file_size=5M #set-variable = innodb_log_buffer_size=8M #innodb_flush_log_at_trx_commit=1 #set-variable = innodb_lock_wait_timeout=50
Après modification, le code de chaque ligne devrait ressembler à ceci :
# skip-innodb innodb_data_home_dir = C:/xampp/xampp/mysql/data/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/ innodb_log_arch_dir = C:/xampp/xampp/mysql/data/ set-variable = innodb_buffer_pool_size=16M set-variable = innodb_additional_mem_pool_size=2M set-variable = innodb_log_file_size=5M set-variable = innodb_log_buffer_size=8M innodb_flush_log_at_trx_commit=1 set-variable = innodb_lock_wait_timeout=50
Lorsque InnoDB n'est pas activé et que MySQL utilise le moteur de stockage de base de données MyISAM à la place, certaines erreurs peuvent être renvoyées :
Propriété ou variable GET non définie dans la classe "A_Class" :A_Class_Object
Erreur fatale :appel à la méthode indéfinie Object::Function() dans /xampp/htdocs/wwwroot/a_page.php à la ligne 87