show variables like '%dir%';
其中,basedir是mysql安裝的位置,而datadir 是資料庫檔案存放的位置,也就是這次要修改的設定
假設新的mysql 資料存放位置在/Mysql下
1.停止mysql運作
sudo server mysql stop
2.複製原來資料庫檔案到新的位置(cp -a 維持複製檔案的權限屬性)
sudo cp -a /var/lib/mysql /Mysql
3.修改 /etc/mysql/mysql.conf.d/mysqld.cnf 設定檔內datadir的值,將
datadir = /var/lib/mysql
改成
datadir = /Mysql/mysql
4.修改/etc/apparmor.d/usr.sbin.mysqld,找到以下兩行
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
替換成
/Mysql/mysql/ r,
/Mysql/mysql/** rwk,
5. 修改 /etc/apparmor.d/abstractions/mysql,找到以下這行
/var/lib/mysql{,d}/mysql{,d}.sock rw,
替換成
/Mysql/mysql{,d}/mysql{,d}.sock rw,
6.
sudo /etc/init.d/apparmor restart
7.
sudo server mysql start
另外,mysql是以mysql這組帳號執行,須確保mysql對
/Mysql/mysql
有寫入的權限!且對
/Mysql
有讀取與執行(r,x)的權限!