Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Aktivieren Sie die MySQL InnoDB Storage Engine-Unterstützung in der XAMPP-Installation

Das XAMPP von Apache Friends ist eine Sammlung kostenloser Open-Source-Apps, die es einfach machen, die Apache-Distribution mit MySQL, PHP und Perl zu installieren. Es gibt vier XAMPP-Distributionen für Windows, Linux, Mac OS X und Solaris. Um einen Apache-Webserver mit XAMPP einzurichten, laden Sie einfach XAMPP herunter und extrahieren Sie ihn, und der Apache HTTPD-Webserver ist nach ein oder zwei weiteren automatisch auszuführenden Skripten bereit. Es gibt keine Änderungen an der Windows-Registrierung (es sei denn, Sie verwenden die Widows-Installationsversion von XAMPP) und es ist nicht erforderlich, Konfigurationsdateien zu bearbeiten.

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