前幾天爲了給正在生產使用的mysql數據更換數據磁盤,走了很多彎路,特意記錄方便後續查閱mysql
需求起源於,原來生產的數據庫磁盤空間即將塞滿,現購買了新的磁盤且是SSD的,預換上新的磁盤sql
具體操做步驟以下:數據庫
對新的磁盤進行掛載,具體就不詳細闡述了,在前面的章節裏面有專門介紹如何掛載和卸載磁盤app
此處我是直接將磁盤掛載到了 /data 目錄spa
一、數據目錄遷移rest
首先是將原有數據庫數據目錄遷移至新的磁盤目錄 /data下面,執行以下命令日誌
cp -r /var/lib/mysql /data/同步
二、修改數據數據目錄指向class
直接定位到 /etc/mysql/my.cnf (5.7以上版本在 /etc/mysql/mysql.conf.d/mysqld.cnf)監控
[mysqld]
#datadir = /var/lib/mysql
datadir=/data/mysql
三、修改系統權限(很重要)
3.一、修改系統權限
打開目錄 /etc/apparmor.d/
編輯上面的文件,在一下標註的地方添加內容
nano usr.sbin.mysqld
# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/data/mysql/ r,
/data/mysql/** rwk,
保存退出
3.二、修改目錄權限
chown -R mysql:mysql /data/mysql
完成以上步驟以後,重啓mysql 便可
service mysql restart
這個時候監控一下日誌,應該就不會有ERR或Waring之類的異常了
若是啓動任然報錯,例以下面的異常
[ERROR] unknown variable 'rpl_semi_sync_slave_enabled=1;'
[ERROR] Aborting
這是由於你爲開啓了主從複製功能,須要改成半同步