美文网首页MysqlMySql
MySQL 另类的数据备份/迁移方式

MySQL 另类的数据备份/迁移方式

作者: Eric_ | 来源:发表于2016-05-05 15:58 被阅读91次

    近期由于服务器迁移,需要做数据库迁移的工作,服务器使用的数据库是MySQL ,首先想到的自然是mysqldump ,导出数据库到sql文件转储.在导出导入的过程中遇到了一些问题,因为数据库中某些表中的字段使用mediablob类型存储了部分媒体信息,导致在sql文件在另一台服务器上导入的时候无法完成,所以采取了比较另类的方式来进行数据库的迁移.

    MySQL 数据库是使用文件存储的,每个数据库会单独创建一个文件夹,数据库的所有信息都会存储在同一个文件夹下,包括所有数据库的结构模型和数据.于是想到是否可以通过复制文件的方式将数据库迁移.我们创建的表使用的引擎是InnoDB,不支持直接的文件复制方式迁移,于是采取了先将所有表的引擎改为MyIsam引擎,然后复制文件,迁移至另一台服务器上之后再将表的引擎改为InnoDb.

    批量修改数据表引擎的实现方式:
    SET @DATABASE_NAME = 'your_dbname';
    SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=MyISAM;') AS sql_statements
    FROM    information_schema.tables AS tb
    WHERE   table_schema = @DATABASE_NAME
    AND     `ENGINE` = 'InnoDB'
    AND     `TABLE_TYPE` = 'BASE TABLE'
    ORDER BY table_name DESC;
    

    查询得到的结果就是批量修改引擎的sql语句,执行即可.
    然后停止MySQL 服务,复制文件即可迁移(文件夹直接复制).迁移后再逆向执行语句,将表引擎改回即可.

    相关文章

      网友评论

        本文标题:MySQL 另类的数据备份/迁移方式

        本文链接:https://www.haomeiwen.com/subject/oepdrttx.html