Mysql的迁移、备份和还原

    科技2025-07-08  10

    @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]

    参考文献

    https://zhidao.baidu.com/question/1579913676423874740.html

    https://www.bluepost.cn/xitongyunwei/mysql-innodb-beifenzhuyishixiang.html

    Processed: 0.014, SQL: 8