2018年7月31日 星期二

Ubuntu 18.04 修改Mysql資料存放預設位置

在mysql下輸入以下指令,可以查看mysql存放位置
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)的權限!