sql >> Base de Datos >  >> RDS >> Mysql

Habilite la compatibilidad con el motor de almacenamiento MySQL InnoDB en la instalación de XAMPP

El XAMPP de Apache Friends es una colección de aplicaciones gratuitas de código abierto que facilitan la instalación de la distribución de Apache que contiene MySQL, PHP y Perl. Hay cuatro distribuciones XAMPP para Windows, Linux, Mac OS X y Solaris. Para configurar un servidor web Apache con XAMPP, simplemente descargue y extraiga XAMPP, y el servidor web Apache HTTPD estará listo después de uno o dos scripts de ejecución automática más. No hay cambios en el registro de Windows (a menos que esté utilizando la versión de XAMPP del instalador de Widows) y no es necesario editar ningún archivo de configuración.

Sin embargo, de forma predeterminada, el motor de almacenamiento de la base de datos MySQL de InnoDB no está habilitado en el archivo de configuración my.cnf. Si un webmaster planea usar funciones de InnoDB, como relaciones de tabla de uno a muchos o de muchos a muchos en restricciones de clave externa, o comandos seguros para transacciones, como capacidades de confirmación, reversión y recuperación de fallas.

Para habilitar el soporte del servidor MySQL en el motor de almacenamiento InnoDB, ubique el archivo de configuración "my.cnf" (normalmente en /installation_path /xampp/mysql/bin/), y edite el my.cnf con cualquier editor de texto como vi.

Busque y localice cada una de las siguientes líneas (excepto las líneas en cursiva donde están los comentarios):

- 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 

Después de la modificación, el código de cada línea debería verse así:

# 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 

Cuando InnoDB no está habilitado y MySQL usa el motor de almacenamiento de base de datos MyISAM, algunos errores que pueden aparecer incluyen:

Propiedad o variable GET no definida en la clase 'A_Class':A_Class_Object

Error fatal:llamada al método indefinido Object::Function() en /xampp/htdocs/wwwroot/a_page.php en la línea 87