注意由于apparmor的存在,以及mysql-systemd-start脚本的影响,导致在Ubuntu上移动MYSQL DATADIR有一些小问题。
步骤0 创建目标目录; 移动数据文件目录,常见的原因有 移动数据到新磁盘或逻辑卷等
例如目标目录路径是 /m01/mysql
mkdir -p /m01/mysql
chown mysql:mysql /m01
chown mysql:mysql /m01/mysql
步骤1 确认datadir
su - root
mysql -u root -p
select @@datadir;
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)
关闭MYSQL实例守护进程
systemctl stop mysql
确认状态
systemctl status mysql
步骤2 同步数据文件到新目录
rsync -av /var/lib/mysql /m01
将原目录归档为备份
mv /var/lib/mysql /var/lib/mysql.bak
步骤3 对/etc/mysql/mysql.conf.d/mysqld.cnf参数文件修改datadir 参数
vi /etc/mysql/mysql.conf.d/mysqld.cnf
修改datadir参数为
datadir = /m01/mysql
步骤4 禁用apparmor 的mysql profile
aa-status |grep mysql
ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
重启 apparmor
systemctl restart apparmor
aa-status |grep mysql
//aa-status |grep mysql 应当无结果
步骤5 针对mysql-systemd-start中的默认路径问题 创建原目录
mkdir /var/lib/mysql/mysql -p
步骤6 重启mysql实例
systemctl start mysql
systemctl status mysql
mysql -u root -p
确认datadir
select @@datadir;