Default storage engine when installing XenForo?

fredrikse

Active member
Hi,

For the last month I been trying to install the gread add-on Simple Forms with no success. The guys at LiquidPro helped me and finally got it solved. Now the add-on is installed the way it should be. It turns out that for the Simple Forms installation to work the xf_user table needs to be set to storage engine InnoDB since the their tables uses foreign keys. In my default installation fo XenForo the table was set to MyISAM.

After running the following code the installation worked:

Code:
ALTER TABLE `xf_user` ENGINE = 'InnoDB';
My question now is what is the default storage engine type when installing XenForo? I don't recall that I have been able to decide that myself.
 
The default is InnoDB for almost all tables. But if your installation of MySQL doesn't support InnoDB at the time of install then it will use MyISAM. You should switch to InnoDB.

This file shows all table definitions as they should be:

library/XenForo/Install/Data/MySql.php
 
Jake, thanks for quick answer. But my installation of MySQL on the web server must support InnoDB since it's possible to alter the storage engine time afterwards. Don't you agree with me? What caused the installation to use MyISAM instead of InnoDB if the support is there?
 
Jake, thanks for quick answer. But my installation of MySQL on the web server must support InnoDB since it's possible to alter the storage engine time afterwards. Don't you agree with me? What caused the installation to use MyISAM instead of InnoDB if the support is there?

There's no other possibility other than innodb not being installed or being disabled on the server as the tables are created with engine=innodb explicitly
 
I looked at the local installation of XenForo that I have been working on on my laptop through the use of MAMP. There the tables are in the InnoDB format. That explains why Simple Forms worked there out of the box.

I still don't get it how the tables can be altered and set to InnoDB after the main installation has finished. Wouldn't that be impossible if my webserver doesn't support this storage engine format?
 
Well, this is what it looks like on the MySQL server:

MySQL server.webp

It clearly states that the server has support for InnoDB. Why it's not used during the installation of xenForo is still a mystery for me. I'm trying to troubleshoot this with my web host.
 
In phpMyAdmin, when I clicked on MyISAM under storage engine, I saw this:

myisam_default.webp

Does this mean even though there is support for InnoDB MyISAM will be used during installation of xenForo since it turns out this storage engine is default on the mysql server?
 
TBH it looks like your InnoDB engine is running - but to check, go to the home page of phpMyAdmin and click the link for "Storage Engines". Is InnoDB linked and can you click the link? If so it's configured and running.

What about user privs for the MySQL user you are using when installing XF? Does this user have ALL privs?
 
TBH it looks like your InnoDB engine is running - but to check, go to the home page of phpMyAdmin and click the link for "Storage Engines". Is InnoDB linked and can you click the link? If so it's configured and running.
InnoDB is linked and when I click on it, it takes me to one of the screenshots above where it says it's functioning properly.

What about user privs for the MySQL user you are using when installing XF? Does this user have ALL privs?
My host is using a special web front when creating new database instances. No where I can set what kind of DB it should be.
 
I decided to do a complete reinstall of version 1.1.3. All of a sudden it seems like the storage engine issue is sorted out. How, I don't really know. But know it looks like it should in phpMyAdmin (y)

innodb_works.webp
 
Top Bottom