frm .MYD .MYI都是MySQL存储数据的文件, 代表MySQL数据库表的结构/数据和索引文件。其中,.frm是描述了表的结构,.MYD保存了表的数据记录,.MYI则是表的索引。
恢复建立mysql数据库时,先用 sudo su 切换到root角色。
第一,要找到初始安装mysql时,数据库存放的位置。通过指令 cd /etc/mysql 切换到mysql目录下,然后用 vim my.cnf 打开my.cnf文件,查找datadir,例如datadir = /var/lib/mysql,则数据库文件就保存在 /var/lib/mysql 目录下。
第二,通过 mkdir /var/lib/mysql/dbname 建立名为 dbname 数据库,然后通过cp -r 源目录/ /var/lib/mysql/dbname将.frm .MYD .MYI(可能还有.opt文件)拷贝到dbname目录下。打开phpmyadmin后,就会发现多了一个名为dbname的数据库。这样,数据库就建立完成了。
但是,当你点击数据库中的表时,可能会出现 Can't find file: '/xxx.frm'(errno:13)。出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root。
解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chown mysql.mysql * 将所有文件的权限都改过来就可以了!如cd /var/lib/mysql/dbname, 然后执行命令:chown mysql.mysql *
再次打开phpmyadmin,就会发现数据库中的表已经可以查看并进行操作了。