今天,搭建新購(gòu)的阿里云ECS環(huán)境(ubuntu 16.04 LTS),需要將mysql的數(shù)據(jù)保存在新掛載的磁盤上(已掛載到/mnt下),先停掉mysql服務(wù),然后查看mysql并數(shù)據(jù)保存的位置:
vi /etc/mysql/mysql.conf.d/mysqld.cnf
發(fā)現(xiàn)datadir=/var/lib/mysql
, 這也就是數(shù)據(jù)所在目錄,于是將它修改為datadir=/mnt/mysql
, 然后保存, 最后將mysql保存的數(shù)據(jù)的拷貝到/mnt下:
cp -r /var/lib/mysql /mntchown -R mysql:mysql /mnt/mysql
完成拷貝后,本以為一切就緒,開啟mysql服務(wù):
systemctl start mysql
但是卻發(fā)現(xiàn)啟動(dòng)失敗,于是再去看看mysql的錯(cuò)誤日志:
tail -f -n100 /var/log/mysql/error.log
發(fā)現(xiàn)錯(cuò)誤信息如下:
[Warning] Can't create test file /mnt/mysql/iZwz9c03srb2lq9l374if5Z.lower-test
細(xì)想一下,mysql的配置應(yīng)該沒問題了啊。檢查一下apparmor的配置:
vi /etc/apparmor.d/usr.sbin.mysqld
發(fā)現(xiàn)其中有如下配置:
# Allow data dir access/var/lib/mysql/ r,/var/lib/mysql/** rwk,
坑爹啊,剛剛將mysql配置文件的datadir的/var/lib/mysql
已經(jīng)改了,但是卻仍然被這兒限制了,于是,將它修改為:
# Allow data dir access/var/lib/mysql/ r,/var/lib/mysql/** rwk,/mnt/mysql/ r,/mnt/mysql/** rwk,
保存。重啟apparmor服務(wù):
service apparmor restart
然后再次啟動(dòng)mysql服務(wù):
systemctl start mysql
服務(wù)終于啟動(dòng)成功了。。。
以上所述是小編給大家介紹的解決修改mysql的data_dir所引發(fā)的錯(cuò)誤問題,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的,在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!
|
新聞熱點(diǎn)
疑難解答
圖片精選