Standardmäßig ist die InnoDB MySQL-Datenbankspeicher-Engine jedoch in der Konfigurationsdatei my.cnf nicht aktiviert. Wenn ein Webmaster plant, InnoDB-Funktionen zu verwenden, wie z. B. One-to-Many- oder Many-to-Many-Tabellenbeziehungen auf Fremdschlüsselbeschränkungen oder transaktionssichere Befehle wie Commit-, Rollback- und Crash-Recovery-Funktionen.
Um die Unterstützung des MySQL-Servers auf der InnoDB-Speicher-Engine zu aktivieren, suchen Sie die Konfigurationsdatei „my.cnf“ (normalerweise in /installation_path /xampp/mysql/bin/ Verzeichnis) und bearbeiten Sie die my.cnf mit einem beliebigen Texteditor wie vi.
Suchen und finden Sie jede der folgenden Zeilen (mit Ausnahme der Zeilen in kursiv wo sie Kommentare sind):
- 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
Nach der Änderung sollte der Code für jede Zeile wie folgt aussehen:
# 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
Wenn InnoDB nicht aktiviert ist und MySQL stattdessen die MyISAM-Datenbankspeicher-Engine verwendet, können einige Fehler zurückgegeben werden:
Undefinierte GET-Eigenschaft oder -Variable in der Klasse „A_Class“:A_Class_Object
Schwerwiegender Fehler:Aufruf der undefinierten Methode Object::Function() in /xampp/htdocs/wwwroot/a_page.php in Zeile 87