Page 1 of 1

Enable innodb data engine

PostPosted: 04. February 2016 13:57
by foxserv
Afer Installing a new xampp using xampp-win32-7.0.1-VC14-installer and adding the projects from my "old" xampp environment ( with php 5.4.7 ), in PHPMyAdmin with some tables I got the message "table <name> doesn't exist in engine". Those tables also had an empty "type" column and the "collate" column said "in use" instead of "latin1_swedish_ci".
Searching for a cause and solution I "suddenly" noticed that those tables had an InnoDB engine in the "old" XAMPP, instead of a MyISAM engine. Consequently I also noticed that the "accepted" tables in the "new" XAMPP had MyISAM in the "type" column.
Searching further I found the my.ini file in the xampp/mysql/bin folder, but the part that says "Comment the following if you are using InnoDB tables" are the same in both XAMPP's ( see below ). So there has to be something else as well that causes the "new" XAMPP not to be able to use both engines by default, where in the "old" XAMPP this was the default setting. At least cannot remember changing any setting(s) in that "old" XAMPP to "force" the use of both engines there. Can anyone tell me whicht setting(s) I have to chage as well?

==============================================================
my.ini "old"
# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "C:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp/mysql/data"
#innodb_log_arch_dir = "C:/xampp/mysql/data"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
## Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
==============================================================
my.ini "new"
# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "C:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp/mysql/data"
#innodb_log_arch_dir = "C:/xampp/mysql/data"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
## Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

Re: Enable innodb data engine

PostPosted: 05. February 2016 15:26
by foxserv
Found a solution myself. When I create the database and add the tables with an .sql script within PHPMyAdmin itself, it works! Copying the files from the "old" c:\xampp\mysql\data folder doesn't work.
Also found a probable cause for this. After creating the tables within PHPMyadmin the InnoDB tables also get an .ibd file in the c:\xampp\mysql\data which didn't exist in the "old" folder.