Forgot about app armour.
For anyone that is interested I did the following to move the folder.
Stop the mysql server:
stop mysql
Create the new directory:
mkdir /array2/mysql
Copy over ONLY the database folders:
cp -R /var/lib/mysql /array2/mysql
cp -R /var/lib/mysql/users /array2/mysql
Backup the my.cnf
file:
cp /etc/mysql/my.cnf /root/my.cnf.backup
Edit the my.cnf
file:
nano /etc/mysql/my.cnf
Change all mentions of the old datadir and socket to your new location
Mine became:
datadir=/array2/mysql
socket=/array2/mysql/mysql.sock
Update the directory permissions:
chown -R mysql:mysql /array2/mysql
Rename the old directory:
mv /var/lib/mysql /var/lib/mysql-old
Create a symlink, just in case:
ln -s /array2/mysql /var/lib/mysql
Let AppArmor know about the new datadir:
echo "alias /var/lib/mysql/ -> /your/new/datadir/," >> /etc/apparmor.d/tunables/alias
Reload the apparmor profiles
sudo /etc/init.d/apparmor reload
Then start mysql:
start mysql
/etc/apparmor.d/usr.sbin.mysqld
each time mysql receives an update, you can add/array2/mysql/** rwk,
to/etc/apparmor.d/local/usr.sbin.mysqld
instead. Mysql will still have access to the old data dir, but that probably isn't an issue. – drevicko Jul 26 '13 at 03:46sed -i "s,datadir.*=.*,datadir=$new_dir,g" /etc/mysql/my.cnf
. Why only the database folders? – int_ua Apr 26 '14 at 16:36innodb_use_native_aio=0
in the[mysqld]
section of yourmy.cnf
file, since ZFS on linux does not support AIO. https://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_use_native_aio – Andrew Ensley Oct 03 '14 at 20:04