No entanto, por padrão, o mecanismo de armazenamento de banco de dados InnoDB MySQL não está habilitado no arquivo de configuração my.cnf. Se um webmaster planeja usar recursos do InnoDB, como um para muitos ou muitos para muitos relacionamentos de tabela em restrições de chave estrangeira ou comandos seguros para transações, como recursos de confirmação, reversão e recuperação de falhas.
Para habilitar o suporte do servidor MySQL no mecanismo de armazenamento InnoDB, localize o arquivo de configuração “my.cnf” (normalmente em /installation_path /xampp/mysql/bin/ diretório) e edite o my.cnf com qualquer editor de texto como o vi.
Pesquise e localize cada uma das seguintes linhas (exceto as linhas em itálico onde estão os comentários):
- 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
Após a modificação, o código de cada linha deve ficar assim:
# 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 o InnoDB não está habilitado e o MySQL usa o mecanismo de armazenamento de banco de dados MyISAM, alguns erros que podem ser retornados incluem:
Propriedade ou variável GET indefinida na classe 'A_Class':A_Class_Object
Erro fatal:Chame o método indefinido Object::Function() em /xampp/htdocs/wwwroot/a_page.php na linha 87