Mysql
 sql >> Base de données >  >> RDS >> Mysql

Activer la prise en charge du moteur de stockage MySQL InnoDB dans l'installation de XAMPP

Le XAMPP d'Apache Friends est une collection d'applications open source gratuites qui facilitent l'installation de la distribution Apache contenant MySQL, PHP et Perl. Il existe quatre distributions XAMPP pour Windows, Linux, Mac OS X et Solaris. Pour configurer un serveur Web Apache avec XAMPP, il suffit de télécharger et d'extraire XAMPP, et le serveur Web Apache HTTPD est prêt après un ou deux autres scripts à exécution automatique. Il n'y a aucun changement dans le registre Windows (sauf si vous utilisez la version d'installation de Widows de XAMPP) et il n'est pas nécessaire de modifier les fichiers de configuration.

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