MySQLでDB毎にHDDを振り分ける

備忘録
シンボリックリンクをはったあと

OrangeCup150さんの通りにやって見ましたがダメでした。
解決したので、自分の備忘録として詳しく書き残して置きます。
さらに調べた所、運良く全く同じ環境でこの問題に悩んでいる人をQ&Aサイトで発見しました。
「ERROR 1 (HY000): Can't create/write to file (Errcode: 13) /tmp」でググればヒットしました。
http://stackoverflow.com/questions/2783313/how-can-i-get-around-mysql-errcode-13-with-select-into-outfile

Ubuntuのセキュリティツール、AppArmorがデフォルトで「/tmp」以外への作成や書き込みを禁止しているそうです。
/etc/apparmor.d/usr.sbin.mysqldを編集して
/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
...
}

を以下のように「/data/ r,」と「/data/* rw,」を追加して

/usr/sbin/mysqld {
...
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/data/ r,
/data/* rw,
}

「# sudo /etc/init.d/apparmor reload」で編集を適応します。

投稿日時 - 2011-07-28 14:42:28