Ubuntu下默认安装了AppArmor的服务,它用于访问控制的。在以apt-get安装mysql时,在AppArmor的配置中也写入了针对mysql的权限控制的配置,导致mysqld_safe与mysqld进程无法读写新移植的datadir目录中的文件,也同样导致了mysql_install_db无法在对应的mysql schema下创建文件。
- 修改配置文件
vim /etc/apparmor.d/usr.sbin.mysqld
修改mysql部分中,将原来的数据目录替换成迁移后的新目录(/data/mysql/
)
/data/mysql/ r, /data/mysql/** rwk, # 例如 # /var/lib/mysql/ r, # /var/lib/mysql/** rwk,
- 重新加载AppArmor
service apparmor reload