AppArmor导致datadir迁移无法启动或初始化怎么办?
【问题描述】:
行为:使用apt-get在ubuntu机器上安装新的mysql用于本地日志存储,
由于默认的datadir位于/var/lib/mysql下,准备重新初始化datadir:
mysql_install_db --user=mysql --datadir=/data/mysql_data -- basedir=/usr
报错如下:
160902 15:25:41 【注】/usr/sbin/mysqld (mysqld 5.5.50- 0ubuntu0.14.04.1) 作为进程 25512 启动 ...
160902 15:25:41 [警告] 无法创建测试文件 /data/mysql_data/10-8-20-62.lower-测试
160902 15:25:41 [警告]无法创建测试文件/data/mysql_data/10-8-20-62.lower-test
错误:1005 可以'不创建表'db'(错误号:13)
160902 15:25:41 [错误] 正在中止
160902 15:25:41 [注意] /usr/sbin/mysqld:关闭完成
系统表安装失败!查看
/data/mysql_data中的日志了解更多信息。
给/data/mysql_data添加了相应的权限,再次执行,还是报同样的错误。
所以只需将/var/lib/mysql文件夹整个迁移到/data/mysql_data,然后启动服务:
cp通过后,修改/etc/mysql/我的。 cnf中的datadir位置,然后启动mysqld_safe,发现无法启动:
mysqld_safe mysqld from pid file /data/mysql_data/mysqld.pid结束
查看错误日志,发现找不到mysql schema下的plugin.frm文件:
160902 15:26:51 [注意]插件“FEDERATED”已禁用。
/usr/sbin/mysqld:找不到文件:“./mysql/plugin.frm”(errno:13)
160902 15 :26:51 [错误] 无法打开 mysql .plugin ta布莱。请运行mysql_upgrade创建。
再次确认目录和文件的权限,然后确认文件存在,启动仍然失败,错误依旧不变。
[解决办法]:
那么我认为Ubuntu和CentOS的文件安全策略可能有有些不一样,然后发现是这样的:(P.S.公司的DB服务器都部署在CentOS上,这次作为特例安装在Ubuntu上)
Ubuntu有一个AppArmor服务默认安装。 ,该服务用于访问控制。
使用apt-get安装mysql时,猜测可能是AppArmor配置中限制了访问限制 -
导致mysqld_safe和mysqld进程无法读写新移植的datadir目录下的文件,并且同样的情况导致mysql_install_db无法在对应的mysql下创建文件架构。
解决办法很简单,只需通过编辑器打开这个文件,让AppArmor重新加载最新的配置即可:
vi /etc/apparmor .d/usr.sbin.mysqld
在usr.sbin.mysqld配置文件中,注释掉一些目录(这些目录是在my.cnf中制作的(已修改):
因为我修改了my.cnf中的pid-file、socket、datadir和log_error,所以我相应地注释掉了这些目录:
#/var/log/mysql.log rw,
#/var/log/mysql.err rw,
#/var/lib/mysql/r,
#/var/lib/mysql/** rwk,
>#/var/log/mysql/r,
#/var/log/mysql/* rw,
#/var/run/mysqld/mysqld.pid rw,
#/var/run/mysqld/mysqld.sock w,
#/run/mysqld/mysqld.pid rw,
当然,
然后在其下添加一个新的datadir目录(注意逗号作为结束符)
/data/mysql_data rw,
最后让AppArmor重新加载:
# /etc/init.d/apparmor reload
* 重新加载 AppArmor 配置文件
跳过 /etc/apparmor.d/disable 中的配置文件:usr.sbin.rsyslogd
...完成。
再次启动mysqld就成功了。 (当然,重新初始化mysql_install_db也是可以的)
当然,你也可以直接停止apparmor服务。
看完上面的内容,你知道如果AppArmor导致datadir迁移无法启动或初始化该怎么办吗?如果您想学习更多技能或者想了解更多相关内容,请关注行业资讯频道。感谢您的阅读!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > AppArmor导致datadir迁移无法启动或初始化怎么办?