der*_*ert 167
如果这些是MyISAM表,那么将.FRM,.MYD和.MYI文件放入数据库目录(例如/var/lib/mysql/dbname)中将使该表可用.它不必是与它们相同的数据库,相同的服务器,相同的MySQL版本或相同的体系结构.您可能还需要更改文件夹的所有权(例如chown -R mysql:mysql /var/lib/mysql/dbname)
请注意,权限(GRANT等)是mysql数据库的一部分.所以他们不会随桌子一起恢复; 您可能需要运行相应的GRANT语句来创建用户,授予访问权限等.(可以恢复mysql数据库,但是您需要小心MySQL版本和任何所需的mysql_upgrade实用程序运行.)
实际上,您可能只需要.FRM(表结构)和.MYD(表数据),但您必须修复表以重建.MYI(索引).
唯一的限制是,如果你降级,你最好检查发行说明(并可能运行修复表).当然,较新的MySQL版本会增加功能.
[虽然很明显,如果你混合和匹配表格,那么这些表格之间关系的完整性就是你的问题; MySQL不关心,但您的应用程序和您的用户可能会.此外,此方法对InnoDB表完全不起作用.只有MyISAM,但考虑到你拥有的文件,你有MyISAM]
小智 22
我刚刚发现了解决方案.我在Windows 7上使用MySQL 5.1或5.6.
无需为此恢复找到.MYI和.MYD文件.
Bre*_*ent 14
有一点需要注意:
.FRM文件中包含您的表结构,并且特定于您的MySQL版本.
.MYD文件并非特定于版本,至少不是次要版本.
.MYI文件是特定的,但可以REPAIR TABLE像其他答案一样被遗漏和重新生成.
这个答案的要点是让你知道如果你有一个表的模式转储,那么你可以使用它来生成表结构,然后用备份替换那些.MYD文件,删除MYI文件,并修复它们所有.这样,您可以将备份还原到另一个MySQL版本,或者完全移动数据库而不使用mysqldump.移动大型数据库时,我发现这非常有用.
小智 12
简单!创建一个虚拟数据库(比如说abc)
将所有这些.myd,.myi,.frm文件复制到mysql\data\abc,其中mysql\data \是存储所有数据库的.myd,.myi,.frm的地方.
然后转到phpMyadmin,转到db abc并找到您的数据库.
我想.myi你可以从mysql里面修复.
如果您从MySQL看到这些类型的错误消息:数据库无法执行查询(查询)1016:无法打开文件:'sometable.MYI'.(错误:145)错误消息:1034:表的密钥文件不正确:'sometable'.尝试修复它然后你可能有一个崩溃或损坏的表.
您可以从mysql提示符检查并修复表,如下所示:
check table sometable;
+------------------+-------+----------+----------------------------+
| Table | Op | Msg_type | Msg_text |
+------------------+-------+----------+----------------------------+
| yourdb.sometable | check | warning | Table is marked as crashed |
| yourdb.sometable | check | status | OK |
+------------------+-------+----------+----------------------------+
repair table sometable;
+------------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+--------+----------+----------+
| yourdb.sometable | repair | status | OK |
+------------------+--------+----------+----------+
Run Code Online (Sandbox Code Playgroud)
现在你的桌子应该没问题:
check table sometable;
+------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+-------+----------+----------+
| yourdb.sometable | check | status | OK |
+------------------+-------+----------+----------+
Run Code Online (Sandbox Code Playgroud)
我找到了一种将文件转换为文件的解决方案.sql(然后您可以将.sql文件导入服务器并恢复数据库),而无需访问/var目录,因此您也无需成为服务器管理员即可执行此操作。
它确实需要在计算机上安装XAMPP或MAMP。
C:\XAMPP)和子目录mysql\data。完整路径应为C:\XAMPP\mysql\data在内部,您将看到您创建的任何其他数据库的文件夹。复制和文件夹充分贴合.myd,.myi并且.frm文件到那里。该文件夹的路径应为
C:\XAMPP\mysql\data\foldername\.mydfiles
然后localhost/phpmyadmin在浏览器中访问。选择您刚刚粘贴到该mysql\data文件夹中的数据库,然后在导航栏中单击“导出”。选择将其导出为.sql文件。然后它将弹出,询问将文件保存在何处
就是这样!你(应该)现在有一个.sql包含原本的数据库文件.myd,.myi并且.frm文件。然后,您可以通过以下方式通过phpMyAdmin将其导入到另一台服务器:创建一个新数据库并在导航栏中按“导入”,然后按照以下步骤将其导入
| 归档时间: |
|
| 查看次数: |
312881 次 |
| 最近记录: |