Mysql
 sql >> Database >  >> RDS >> Mysql

Abilita il supporto del motore di archiviazione MySQL InnoDB nell'installazione di XAMPP

XAMPP di Apache Friends è una raccolta di app open source gratuite che semplificano l'installazione della distribuzione Apache contenente MySQL, PHP e Perl. Esistono quattro distribuzioni XAMPP per Windows, Linux, Mac OS X e Solaris. Per configurare un server Web Apache con XAMPP, è sufficiente scaricare ed estrarre XAMPP e il server Web Apache HTTPD è pronto dopo uno o due altri script di esecuzione automatica. Non ci sono modifiche al registro di Windows (a meno che tu non stia utilizzando la versione di installazione di XAMPP di Widows) e non è necessario modificare alcun file di configurazione.

Tuttavia, per impostazione predefinita, il motore di archiviazione del database MySQL di InnoDB non è abilitato nel file di configurazione my.cnf. Se un webmaster prevede di utilizzare le funzionalità di InnoDB, come le relazioni da uno a molti o da molti a molti su vincoli di chiave esterna, o comandi sicuri per le transazioni come le funzionalità di commit, rollback e crash recovery.

Per abilitare il supporto del server MySQL sul motore di archiviazione InnoDB, individuare il file di configurazione "my.cnf" (normalmente in /percorso_installazione /xampp/mysql/bin/) e modifica la directory my.cnf con qualsiasi editor di testo come vi.

Cerca e individua ciascuna delle seguenti righe (tranne le righe in corsivo dove sono commenti):

- 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 

Dopo la modifica, il codice per ciascuna riga dovrebbe essere simile a questo:

# 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 

Quando InnoDB non è abilitato e MySQL utilizza invece il motore di archiviazione del database MyISAM, alcuni errori che potrebbero essere restituiti includono:

Proprietà o variabile GET non definita nella classe "A_Class":A_Class_Object

Errore irreversibile:chiamata al metodo non definito Object::Function() in /xampp/htdocs/wwwroot/a_page.php alla riga 87