.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 *