在Linux系统上,安装好并启动mysql后,如果需要移动数据目录(通常是需要将数据目录移动到数据盘挂载点目录下),通常是一下几个步骤:
1:停止mysql服务
service mysql stop
2:复制原数据目录到目标新目录
cp -rp /var/lib/mysql /data/my_new_data_folder
【-rp表示携带原有文件的权限属性到新目录,避免出现权限问题】
3:修改配置文件,[mysqld]节点下的datadir属性值,改为新的目录
4:启动mysqld
service mysqld start
一般这样操作下来,都能正常启动,有时候会遇到一些“坑”,避坑如下:
1:selinux的坑,如果遇到无法启动的情况,检查服务器的selinux是否已启用,如果启用了就禁用掉。
2:apparmor,这个和selinux一样,它也对mysql所能使用的目录权限做了限制,执行
cat /etc/apparmor.d/usr.sbin.mysqld
可以在文件中看到这样的配置:
# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
这里路径明显是原有的数据目录路径,我们就照葫芦画瓢,在下面加两行,成为这样:
# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
同理,如果需要修改其他目录,例如错误日志目录,也是在这个文件对应位置加上新的目录就行。