MySQL 离线迁移数据

最近更新时间:2019-06-21 16:49:14

控制台迁移数据

  1. 通过 云数据库 MySQL 控制台 下载备份文件,详细操作请参见 下载备份文件
  2. 还原数据库时,可以通过 MySQL 命令行工具进行还原,方式如下:
    shell > mysql -h hostname -P port -u username -p -d dbname < bak_pathname
    其中,hostname 为还原数据的目标主机,port 为目标主机的端口,username 为目标主机的数据库用户名,dbname 为数据库名,bak_pathname 为备份文件的完整路径。
  3. 还原数据表时,先登录到 MySQL 数据库,再通过shell > source bak_pathname进行数据表还原。
    其中,bak_pathname 为备份文件的完整路径名。

Windows 迁移数据库

以 db_blog 这个数据库为例:

  1. 登录 云数据库 MySQL 控制台
  2. 在实例列表找到需要导出数据的实例,单击实例名或【操作】列的【管理】,进入实例管理页面。
  3. 选择【备份恢复】>【备份列表】页签,找到需要下载的备份文件,选择【下载】>【部分下载】。
  4. 选中需要导出的数据库,单击【下一步】。
  5. 单击 本地下载 中的【下载】,将备份文件下载至本地。
  6. 记录完整的路径名称。
    本例中的完整路径为: F:\download\cdb147691_backup_20170717050142
  7. 进入命令提示符,通过 MySQL 命令行工具进行还原。
  8. 登录 MySQL 数据库可以查看到备份的数据库已经还原到服务器内。

Windows 迁移数据表

  1. 以 db_blog 下的 t_blog 数据表为例,从云数据库数据控制台下载备份文件。
  2. 从云数据库数据控制台下载备份文件,记录完整的路径名称。
    本例中的完整路径为 F:\download\cdb147691_backup_20170718050146
  3. 进入命令提示符,通过 MySQL 命令行工具进行还原。
  4. 登录 MySQL 数据库可以查看到备份的数据表已经还原到服务器内。

命令行工具迁移数据

  1. 使用 MySQL 命令行工具 mysqldump 生成待导入的 SQL 文件,方式如下:

    注意:
    使用 mysqldump 导出的数据文件必须兼容所购买的云数据库 MySQL 版本的 SQL 规范,可登录云数据库通过 select version(); 获取相应的 MySQL 版本信息。生成的 SQL 文件名称允许英文/数字/下划线,但不能包含 “test” 字符。

    shell > mysqldump [options] db_name [tbl_name ...] > bak_pathname

    其中,options 为导出选项,db_name 为数据库名称,tbl_name 为表名称,bak_pathname 为导出路径名。
    更多 mysqldump 导出数据说明,请参考 MySQL官方手册

  2. 还原数据库时,可以通过 MySQL 命令行工具进行还原,方式如下:

    shell > mysql -h hostname -P port -u username -p < bak_pathname

    其中,hostname 为还原数据的目标主机,port 为目标主机的端口,username 为目标主机的数据库用户名,bak_pathname 为备份文件的完整路径。

通过 CVM 主机 Linux 系统迁移数据

CVM 主机访问数据库请参考 访问 MySQL 数据库。

  1. 以云数据库上的 db_blog 数据库为例。登录 CVM 主机,使用 MySQL 命令行工具 mysqldump 生成待导入的 SQL 文件。
  2. 通过 MySQL 命令行工具进行还原,本例将数据还原到 CVM 服务器上。可以查看到备份的数据库已导入到目标服务器对应的数据库中。

导入数据文件字符集编码问题

  1. 云数据库导入数据文件如果没有指定字符集编码,以云数据库设置的字符集编码执行。
  2. 如果导入数据文件中有指定的字符集编码,则以指定的字符集编码执行。
  3. 如果导入的数据文件的字符集编码与云数据库当前字符集编码不同,会造成乱码。

更多字符集编码问题,请参考 使用限制 ,字符集说明。