@MySQL的迁移、备份和还原

MySQL的迁移、备份和还原

对于MySQL如何有效备份和还原数据,以及出现问题的简单修复,做个小结。

一. 迁移

对于将MySQL从一台机器迁移到另一台机器,前提条件是 原系统和数据正常 ,按以下方法完成迁移:

1.存储引擎类型为MyISAM引擎

直接复制数据库的某个表文件:TableName.frm、TableName.MYD、TableName.MYI,或者复制数据库文件夹,例如:test库,就拷贝MySql\data\test文件夹

2.存储引擎类型为InnoDB引擎

大多数会是InnoDB引擎,由于这种引擎,数据会存储在MySql目录的ibdata1中,因此:     需要同时复制数据库表*.frm文件和ibdata1文件到相应位置,但ibdata1文件包含所有数据库内容。如果这时采用上述(1)的方式拷贝,可以看到数据库名,但在打开表时,会出现“ XXX doesn’t exist in engine”类似错误。因此,对于InnoDB引擎用以下命令完成迁移:
 首先备份:

mysqldump -u [USERNAME] -p [DATABASE_NAME] > [BACKUP_FILE_NAME]

然后先创建数据库(可依托Navicat工具或用命令:create database [DATABASE_NAME];),再还原:

mysql -u [USERNAME] -p [DATABASE_NAME] < 如何[BACKUP_FILE_NAME]

3.如何判断存储引擎类型

MyISAM类型,数据存储于"/data/DatabaseName/"文件夹,包含TableName.frm、TableName.MYD、TableName.MYI三个文件;
 InnoDB类型,数据存储在"/data/"文件夹的ibdata1文件,数据结构文件则存在于TableName.frm中。
 要判断自己的MySQL是哪种引擎类型,方法是:

SHOW TABLE STATUS from 数据库库名 where Name=‘表名’;

或者:

mysqlshow -u 数据库登录帐号 -p ‘数据库登录帐号密码’ --status 数据库库名 表名

执行后,

EF mysql 数据迁移 mysql怎么迁移_MySQL


即可确定引擎类型。

二. 备份还原

1.用SQL文件

该方法适用数据量不是太大的情况,用Navicat等第三方工具,在要转储的数据库名上右键,”转储SQL文件“,即可生成包含结构和数据的SQL文件。
然后,在Mysql中先新建数据库,在数据库名上右键,选择”执行SQL文件“,即可将该数据库中的表和数据恢复。

2.用工具备份还原

备份:

mysqldump -u [USERNAME] -p [DATABASE_NAME] > [BACKUP_FILE_NAME]

还原:

mysql -u [USERNAME] -p [DATABASE_NAME] < 如何[BACKUP_FILE_NAME]