解決修改mysql的data_dir所引起的錯誤

今天,搭建新購的阿里雲ECS環境(ubuntu 16.04 LTS),須要將mysql的數據保存在新掛載的磁盤上(已掛載到/mnt下),先停掉mysql服務,而後查看mysql並數據保存的位置:
java

vi /etc/mysql/mysql.conf.d/mysqld.cnf

發現datadir=/var/lib/mysql, 這也就是數據所在目錄,因而將它修改成datadir=/mnt/mysql, 而後保存, 最後將mysql保存的數據的拷貝到/mnt下:mysql

cp -r /var/lib/mysql /mnt
chown -R mysql:mysql /mnt/mysql

完成拷貝後,本覺得一切就緒,開啓mysql服務:sql

systemctl start mysql

可是卻發現啓動失敗,因而再去看看mysql的錯誤日誌:ubuntu

tail -f -n100 /var/log/mysql/error.log

發現錯誤信息以下:
[Warning] Can't create test file /mnt/mysql/iZwz9c03srb2lq9l374if5Z.lower-testapp

細想一下,mysql的配置應該沒問題了啊。檢查一下apparmor的配置:阿里雲

vi /etc/apparmor.d/usr.sbin.mysqld

發現其中有以下配置:rest

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

坑爹啊,剛剛將mysql配置文件的datadir的/var/lib/mysql已經改了,可是卻仍然被這兒限制了,因而,將它修改成:日誌

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/mnt/mysql/ r,
/mnt/mysql/** rwk,

保存。重啓apparmor服務:code

service apparmor restart

而後再次啓動mysql服務:get

systemctl start mysql

服務終於啓動成功了。。。

個人博客: javafan.cn

相關文章
相關標籤/搜索