成功在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上搜到关于这个隐藏配置的文章,大把大把的篇幅都是被机械的转载再转载,不得不说这是技术界的悲哀…

标签: ,
文章分类 FK Coding

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计