2.2 .sql类型文件导入
.sql类型文件也称为SQL脚本,通常由一系列SQL语句组成,可使用任何文本编辑器进行编辑和查看,一般是通过命令行工具mysqldump或Navicat等数据库连接工具导出的备份文件。此类型文件导入数据库的操作比较简单,主要有两种方法。
第一种方法是使用系统自带的命令提示符功能导入。打开命令提示符界面,输入 “mysql -u 用户名 -p”,再输入MySQL的登录密码后即可连接到MySQL数据库;使用 “use 数据库名;”切换到想要导入的的数据库,如下所示。
然后,使用 “source 备份文件地址”,当出现Query OK时表示导入数据成功,如下所示。
第二种方法是使用数据库连接工具进行导入。打开安装的数据库连接工具Navicat,新建一个MySQL连接并填写相关信息,如下所示。
找到想要导入的数据库,右键库名选择运行SQL文件,找到所备份的.sql类型文件,点击开始即可导入数据,如下所示。
提示框出现Finished successfully时表示数据导入成功。点开左侧的表选项即可看到导入到本地的所有数据,如下所示。
2.3 .frm和.ibd类型文件导入
如果MySQL创建表时选择不同的存储引擎,生成的数据文件也会不同。InnoDB生成.frm和.ibd两个文件,其中.frm文件用于存储表结构,.ibd文件用于存储表数据。MyISAM生成.frm、.myd还有.myi三个文件,.frm文件也是用于存储表结构,.myd用于存储数据,.myi用于存储索引文件。MyISAM生成的3个文件直接拖入创建的新数据库文件路径中即可查看数据,而InnoDB引擎生成的2个文件复制到新数据库目录中找不到表结构和数据。此时,需要对表结构进行恢复后再把数据文件导入表中,具体操作如下:
首先,找到需要恢复表结构的.frm文件位置,在此位置打开命令提示符界面,使用“mysqlfrm --diagnostic xx.frm(xx为表名)”命令恢复此表的创表语句,然后复制创表语句,如下所示。
在Navicat中创建的一个新的数据库中执行创表语句,用于恢复表结构并创建新的表,如下所示。需要注意的是,当执行创表语句时需注意格式问题,删除多余的语句才能完整执行。
执行完毕后就可以看到整个表的表结构已经恢复成功,但是表中还没有数据,接下来需要把表数据导入到表中,如下所示。
在命令提示符界面使用“use 库名”进入到新创建的库中,然后执行“alter table xx DISCARD TABLESPACE;”命令丢弃新库中xx表的表空间,目的是为了导入新的数据到表中。执行完成后把.ibd文件复制到新库的xx表中,mysql本地数据存储的文件夹默认存放在C:\ProgramData\MySQL\MySQL Server 5.7\Data中。复制完成后再返回命令提示符界面执行“ alter table xx IMPORT TABLESPACE;”把导入的数据引入到xx表的表空间中,如下所示。此过程受数据量大小的影响可能耗时较长,等待数据导入即可。
数据导入成功后,在Navicat中就可以看到已经完整恢复出整个表的结构及数据,如下所示。