Mysql迁移数据目录后无法启动


有时候我们需要迁移Mysql的数据存储目录, 网上有很多类似的教程,具体的不赘述。 但是我们在迁移的时候,经常会碰到迁移之后,mysql无法正常启动, 查看启动日志发现报了 “errno:13  ”的错误, 对照错误表,我们能够知道这个其实是一个权限的问题。

但是就像很多教程中所写的那样,我们在迁移mysql的数据目录之后,已经执行了操作  chrown -R mysql.myql , 那么为什么已经修改了权限,仍旧会报错,不能正常启动呢。

其实Ubuntu下默认安装了并存在一个AppArmor的服务,这个服务是用于访问控制的。在以apt-get安装mysql时,在AppArmor的配置中也写入了针对mysql的权限控制的配置,导致mysqld_safe与mysqld进程无法读写新移植的datadir目录中的文件,也同样导致了mysql_install_db无法在对应的mysql schema下创建文件。

所以相应的, 我们只需要修改对应的配置文件,然后重新写加载AppArmor就可以了。我们通过

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

然后修改mysql部分中,将原来的数据目录替换成迁移后的新目录

#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/data/mysql_data/ r,
/data/mysql_data/** rwk,

然后重新加载AppArmor

/etc/init.d/apparmor reload

之后再重新启动mysql服务就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值