@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 数据库库名 表名
执行后,
即可确定引擎类型。
二. 备份还原
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]