成功在ubuntu下移动mysql数据库

乍看标题,似乎这是一篇没有任何技术含量的转贴,但是,却恰恰相反,本文就是为了抨击这种不负责的转贴而写。

由于/var分区空间小,于是想把mysql的数据库移动到/home下,这个很简单(对,群里人也都说很简单,大家都说很简单),google了一下一堆的文章,找了个比较权威的来搞,如下:

http://database.51cto.com/art/200905/125833.htm

但是到最后一步启动mysql的时候却接到了一个faild,查看日志,发现有如下提示:

Aug 10 09:18:26 localhost mysqld[9751]: 090810  9:18:26  InnoDB: Operating system error number 13 in a file operation.
Aug 10 09:18:26 localhost mysqld[9751]: InnoDB: The error means mysqld does not have the access rights to
Aug 10 09:18:26 localhost mysqld[9751]: InnoDB: the directory.
Aug 10 09:18:26 localhost mysqld[9751]: InnoDB: File name ./ibdata1
Aug 10 09:18:26 localhost mysqld[9751]: InnoDB: File operation call: 'open'.
Aug 10 09:18:26 localhost mysqld[9751]: InnoDB: Cannot continue operation.


看来是权限的问题,索性将chmod 777给了/home/mysql,但是,没有任何起色。

在google上搜索相关的文章,最后在一个bug贴中找到了一个临时解决办法:aa-complain mysqld,一个鸵鸟策略。

但是,好景不长,当我用apt-get重新配置mysql的时候(比如安装了插件,则自动配置mysql),问题又回来了,看来,这个脑袋还得从土里拿出来。

问题定为到了apparmor上,但是在上述教程中已经将/etc/apparmor.d/usr.sbin.mysqld的相关目录做了修改,难道其它的地方还有吗?死马当活马医,拿出find+grep大法,在/etc/apparmor搜索所有跟/var/lib/mysql(原来的mysql数据库目录)有关的配置,果不其然,最后在/etc/apparmor.d/abstractions/mysql找到了

/var/lib/mysql/mysql.sock rw,

这么一行,看来应该是问题的症结所在了。将其注释掉,并增加一句:

/home/mysql/mysql.sock rw,

保存退出重启mysql和apparmor,哈哈,问题解决了。

后记:但一直到最后把问题搞定,也没有在google上搜到关于这个隐藏配置的文章,大把大把的篇幅都是被机械的转载再转载,不得不说这是技术界的悲哀...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值