Hi, Geoff! On Oct 27, Geoff Montee wrote:
I've been building MySQL 5.6 from source for a while. I recently started testing MariaDB Galera Cluster 10.0. When I build MariaDB Galera Cluster from source, I originally used the same cmake flags that I used for MySQL 5.6, along with the additional flags specified in Codership's documentation:
http://galeracluster.com/documentation-webpages/installmariadbsrc.html
My build process basically comes down to this:
cmake . -L -DCMAKE_INSTALL_PREFIX=$MYQL_PREFIX -DMYSQL_DATADIR=$MYSQL_DATA -DWITH_SSL=yes -DWITH_READLINE=ON -DWITH_PIC=ON -DWITH_UNIT_TESTS=0 -DWITH_WSREP=ON -DWITH_INNODB_DISALLOW_WRITES=1 make make install
With MariaDB Galera Cluster 10.0.14, the server that gets built does not have the Archive and Blackhole storage engines enabled by default. I do see that "ha_archive.so" and "ha_blackhole.so" were built and placed in plugin_dir, so I could probably enable them manually with INSTALL PLUGIN.
This surprised me, because these engines are enabled by default in MySQL 5.6, and I see no mention of this difference here:
https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/#incompatibilities-...
Of course, if I add "-DWITH_ARCHIVE_STORAGE_ENGINE=ON -DWITH_BLACKHOLE_STORAGE_ENGINE=ON" to my cmake arguments, then these engines are enabled in the MariaDB server that gets built.
Is this difference intentional? If so, you may want to add a note to the documentation referenced above.
This has changed in MySQL-5.6 about in 2012, as a response to the internal bug Bug#13595996 CREATE A CONSISTENT DEVELOPMENT CMAKE OPTION SET AND MAKE IT A DEFAULT This change links storage engines statically into the server by default, not only in mysql_release configuration, as it was before. But we intentinally don't do that. There is a release configuration, as specified in https://mariadb.com/kb/en/generic-build-instructions/ it is cmake . -DBUILD_CONFIG=mysql_release and if you don't use it, you can assemble your own configuration as you see fit. Regards, Sergei P.S. Note that both mysql and mariadb have a concept of "default" engines - engines that are compiled in by default. They are: mysql-5.6 $ grep -lw DEFAULT storage/*/CMakeLists.txt storage/innobase/CMakeLists.txt storage/ndb/CMakeLists.txt storage/perfschema/CMakeLists.txt mariadb-10.0 $ grep -lw DEFAULT storage/*/CMakeLists.txt storage/maria/CMakeLists.txt storage/perfschema/CMakeLists.txt storage/xtradb/CMakeLists.txt I'm not entirely sure why MySQL enables non-default engines by default, looks kind of weird.