mysql报错:ERROR 29 (HY000): File './mysql/user.MYD' not found (Errcode: 2 - No such file or directory)

背景

        公司新买一台云服务器,mysql默认安装好了,数据在系统盘 /data/mysql文件夹中,我想把数据盘挂载到/data文件夹,先将/data文件内容备份至/databak。将数据盘挂载至/data文件夹以后,将/databak的内容移回/data(所有操作使用root用户)。

现象

        mysql启动成功,进入mysql以后无法看到mysql数据库,给用户授权报错。

其实是因为无法看到mysql.user,导致所有涉及用户的操作都不行。


解决思路

        自然是先网上一顿查资料,发现有两个可能:

        1.权限问题

        2.mysqld文件内要加几行内容(centos在/etc/rc.d/init.d/mysqld,ubuntu好像是在/etc/apparmor.d/usr.sbin.mysqld)

        我先看的/etc/rc.d/init.d/mysqld,没找到类似下面这种信息,这就很尴尬了。

/usr/sbin/mysqld {     

...     

/var/log/mysql/ r,     

/var/log/mysql/* rw,     

/var/run/mysqld/mysqld.pid w,     

/var/run/mysqld/mysqld.sock w,     

/data/ r,     

/data/* rw,

        于是我只能去查看/data/mysql/mysql整个文件夹的权限,发现所有文件都是640的权限(rw-r-----),抱着试一试的心态,把所有文件改成660的权限(rw-rw----),重启mysql,再进mysql,发现mysql数据库出来了。


我只能说很神奇,不过奇怪的是performance_schema明明还是640的权限,为什么也能看见了,不是很懂。

后面查出原因再更新文档吧。

 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容