求助:Ubuntu16 下MySQL 更换数据存储目录问题
求教各位大神:
已经逛了无数个网页,看了至少三十个在Ubuntu下怎么迁移Mysql的数据文件目录的文章。没有一个能在我的环境下生效的。
目前我的环境很纯净:
服务器:阿里云Ubuntu 16.04 64位, 加载了数据盘500G在 /mnt下,并mkdir /mnt/database准备存储更多的数据;
数据库:MySQL 5.7.17(随便加了几个数据测试正常)
MySQL 默认数据存储目录:/var/lib/mysql
为了迁移默认数据存储目录:
做了如下操作后,仍不正常,请教大神指点!
我做过的操作:
1. # cp -a /var/lib/mysql /mnt/database
2. # chown -R mysql:mysql /mnt/database/mysql/
3.修改 mysqld.cnf 文件
#vi /etc/mysql/mysql.conf.d/mysqld.cnf
将datadir = /var/lib/mysql 改为 datadir = /mnt/database/mysql
4. 修改文件usr.sbin.mysqld(两处,一个是目录 ,一个是目录下的文件)
# vi /etc/apparmor.d/usr.sbin.mysqld
5 修改abstractions/mysql文件
#vi /etc/apparmor.d/abstractions/mysql
就是这最后一步,和网上说的不一样,别的文章说,修改内容为:
#——————————————————————————
# /var/lib/mysql/mysq.sock rw
/mnt/database/mysql/mysql.sock rw
/{var/,}run/mysql{,d}/mysql{,d}.sock rw,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
但我的这个文件打开后,需要被注释/重写的的那一行,是这样的:
/var/lib/mysql{,d}/mysql{,d}.sock rw,
我改写为这两种格式,都试过了,都不行:
# /mnt/database/mysql/mysql.sock rw,
# /mnt/database/mysql{,d}/mysql{,d}.sock rw,
还有的帖子说,需要修改/etc/init.d/mysql 这个文件的 datadir 内容的,我也看了,文件内容和帖子上说的不一样。
还请问各位大神,问题出在哪里?
非常感谢!