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