Da ich von dem InnoDB-Plugin sehr begeistert bin, konfiguriere ich es - wenn möglich - nach jeder Paketinstallation.
Das OS meines neuen Rootservers (Ubuntu 10.04) kommt mit MySQL 5.1.41-3ubuntu12.6,
so muß nur folgendes in die /etc/mysql/my.cnf eingefügt werden um das InnoDB-Plugin zu aktivieren.
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
(Es handelt sich um zwei Zeilen, die erste verhindert das Laden der internen InnoDB-Engine und die zweite Zeile lädt das Plugin.)
So die Theorie, doch im Errorlog ist folgendes zu lesen:
100909 0:16:27 [ERROR] Can't open shared library '/usr/lib/mysql/plugin/ha_innodb_plugin.so' (errno: 0 failed to map segment from shared object: Permission denied)
Hier verbietet AppArmor mmap auf das InnoDB-Plugin. Selbstredend kann auf AppArmor verzichtet und deaktiviert werden. (Dienst stoppen und aus dem Runlevel entfernen.)
Soll AppArmor aber weiter genutzt werden, ist es notwendig die Konfiguration anzupassen:)
Der (/usr/sbin/)mysqld hat laut /etc/apparmor.d/usr.sbin.mysqld bereits Zugriff auf
/var/lib/mysql/** rwk,
Sprich folgende Zeile hinzufügen:
/usr/lib/mysql/plugin/* m,
AppArmor reloaden und Spaß haben :)