Hi! On 8 May 2014, at 11:59, Charles Cazabon <charlesc-web-register-launchpad.net@pyropus.ca> wrote:
Greetings,
I'm not sure if I'm doing something particularly stupid, but I'm having difficulty using InnoDB (the XtraDB version) with MariaDB v.10.0.10. The engine shows as disabled in my configuration for reasons I'm unclear on.
This is truly rather odd
I'm using a mirror of the apt repository (from http://mariadb.org/mariadb/repositories/) on Ubuntu 14.04 server, running on x86_64. The currently installed version is 10.0.10+maria-1~trusty .
I did the same thing on a test box (fresh install of ubuntu 14.04 server)
My configuration includes changing the default table type:
# defaults to innodb default_storage_engine = aria
Why? (not that its a problem, just curious)
That works as expected. However, when I create a table specifying `ENGINE=InnoDB`, the table is actually created as an Aria table, and a warning is logged:
show warnings; +---------+------+---------------------------------+ | Level | Code | Message | +---------+------+---------------------------------+ | Warning | 1286 | Unknown storage engine 'InnoDB' | +---------+------+---------------------------------+
Sure enough, the InnoDB engine shows as not supported:
show engines; [...] | InnoDB | NO | Percona-XtraDB, Supports transactions.... |
I haven't done anything specifically to disable XtraDB/InnoDB support.
On a good install (which seems to be the default), you will see: *************************** 9. row *************************** Engine: InnoDB Support: DEFAULT Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES My configuration (default my.cnf shipped in /etc/mysql/my.cnf) shows: default_storage_engine = InnoDB I change it to look like yours: default_storage_engine = aria And I still see support for InnoDB and Aria (just that aria is the default) | InnoDB | YES | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | Aria | DEFAULT | Crash-safe tables with MyISAM heritage | NO | NO | NO | And i can create aria or innodb tables just fine MariaDB [foo]> show create table test1; +-------+--------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------------+ | test1 | CREATE TABLE `test1` ( `a` int(11) DEFAULT NULL ) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 | +-------+--------------------------------------------------------------------------------------------------------+ 1 row in set (0.02 sec) MariaDB [foo]> show create table test2; +-------+------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------+ | test2 | CREATE TABLE `test2` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
Looking through the documentation, knowledge basse, and mailing list archives hasn't turned up anything related. The only thing I found was this, in the documentation for the ignore_builtin_innodb variable:
ignore_builtin_innodb
Description: In older versions of MariaDB, setting this to 1 resulted in the built in InnoDB storage engine to be ignored. In MariaDB 5.5, InnoDB is the default and is always present, so this variable is ignored and setting it results in a warning. In MariaDB 10.0.x, this variable currently needs to be set.
I'm not sure exactly what it means by saying it "needs to be set" with this version of MariaDB (doc bug?). If I add `ignore_builtin_innodb = 1` to my configuration, then the server refuses to start, complaining about unrecognized configuration options in the config, basically anything to do with innodb (innodb_file_per_table, innodb_checksum_algorithm, etc).
You don't need this. XtraDB is the default (and the built in innodb). You only do this if you are wanting to not use XtraDB but the InnoDB plugin provided by Oracle (i.e. what innodb ships in 5.6)
Am I missing something? Is there a way to use Aria as the default table type while still allowing the use of XtraDB-provided InnoDB tables as well?
Yes, I showed above that it is fine Can you try on a fresh machine/install because what you say is something I cannot repeat Thanks -- Colin Charles, Chief Evangelist, SkySQL - The MariaDB Company blog: http://bytebot.net/blog/| t: +6-012-204-3201 | Skype: colincharles