Standaard is de InnoDB MySQL-databaseopslagengine echter niet ingeschakeld in het my.cnf-configuratiebestand. Als een webmaster van plan is om InnoDB-functies te gebruiken, zoals een-op-veel- of veel-op-veel-tabelrelaties op basis van externe sleutelbeperkingen, of transactieveilige commando's zoals commit-, rollback- en crashherstelmogelijkheden.
Om de ondersteuning van de MySQL-server op de InnoDB-opslagengine in te schakelen, zoekt u het configuratiebestand "my.cnf" op (normaal gesproken in /installatiepad /xampp/mysql/bin/ directory), en bewerk de my.cnf met een teksteditor zoals vi.
Zoek en lokaliseer elk van de volgende regels (behalve de regels in cursief waar ze opmerkingen zijn):
- Geef commentaar op de volgende regel om het overslaan op te heffen en InnoDB te gebruiken skip-innodb - Verwijder commentaar bij de volgende opties voor de InnoDB-database als u InnoDB-tabellen gebruikt. #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_data_file_path =ibdata1:10M:automatische verlenging - Maak commentaar op de regels en stel innodb_buffer_pool_size in op 50% - 80% RAM voor optimalisatie van InnoDB-databases, probeer het geheugengebruik niet te hoog te maken. #set-variable =innodb_buffer_pool_size=16M #set-variable =innodb_additional_mem_pool_size=2M - Verwijder commentaar bij de regels en stel innodb_log_file_size in op 25% van de InnoDB-bufferpoolgrootte voor optimalisatie. #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
Na wijziging zou de code voor elke regel er als volgt uit moeten zien:
# 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 /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 =prelockWanneer InnoDB niet is ingeschakeld en MySQL in plaats daarvan de MyISAM-database-opslagengine gebruikt, kunnen enkele fouten worden geretourneerd:
Ongedefinieerde GET-eigenschap of variabele in klasse 'A_Class':A_Class_Object
Fatale fout:Aanroep naar ongedefinieerde methode Object::Function() in /xampp/htdocs/wwwroot/a_page.php op regel 87