云数据库 MySQL 离线迁移数据

这篇说说通过控制台和命令行工具两种方案迁移数据至腾讯云MySQL,包括物理/逻辑备份恢复、mysqldump导出导入及字符集编码问题处理。 控制台迁移:支持物理备份和逻辑备份恢复数据库。 命令行迁移:使用mysqldump导出SQL文件,通过mysql命令导入目标数据库。 字符集编码:导入文件字符集需与数据库一致,否则可能乱码。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

这里说明如何通过控制台和命令行工具两种方案迁移数据。

一、控制台迁移数据

通过控制台迁移数据有物理备份和逻辑备份两种方式,详细操作请参见:

·使用物理备份恢复数据库

·使用逻辑备份恢复数据库

二、命令行工具迁移数据

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

shell > mysqldump <options> <db_name> <tbl_name …> > <bak_pathname>

·<options>:为导出选项或参数,常用的选项包括:-h,-u,-p 等,常用的参数例如:–default-character-set。

·<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>:替换为备份文件的完整路径。

三、迁移数据(Windows 系统)

1. 使用 Windows 系统的 mysqldump 工具生成待导入的 SQL 文件,具体请参考 命令行工具迁移数据 中的描述。

2. 进入命令提示符,通过 MySQL 命令行工具导入数据至目标数据库。


3. 登录目标 MySQL 数据库,执行show databases;命令,可查看到备份的数据库已导入至目标数据库。


四、迁移数据(Linux 系统)

这篇以 Linux 系统的 CVM 为例,从 CVM 访问数据库请参见 访问 MySQL 数据库。

1. 登录 CVM,使用 MySQL 命令行工具 mysqldump 生成待导入的 SQL 文件。以云数据库上的 db_blog 数据库为例。


2. 通过 MySQL 命令行工具,将数据还原至目标数据库。

3. 登录目标 MySQL 数据库,执行show databases;命令,可查看到备份的数据库已导入至目标数据库。


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

1. 云数据库导入数据文件如果没有指定字符集编码,以云数据库设置的字符集编码执行。

2. 如果导入数据文件中有指定的字符集编码,则以指定的字符集编码执行。

3. 如果导入的数据文件的字符集编码与云数据库当前字符集编码不同,会造成乱码。

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

六、使用数据导入功能出现报错:wait err=exit status 255, busi errmsg=import sql file failed, err=ERROR 1227 (42000) at line 24: Access denied; 如何处理?

使用数据导入功能出现42000报错,表示在导入 SQL 文件时遇到了访问被拒绝的错误,导致导入 SQL 文件失败,可能是当前用户没有足够的权限,建议通过如下两种方式进行处理:

·使用 MySQL 命令行工具 mysqldump 重新生成待导入的 SQL 文件,引用参数:–set-gtid-purged=OFF,然后再重新尝试导入。生成导入 SQL 文件命令请参考 命令行工具迁移数据。

·你也可以根据报错提示,手动注释相关行以规避导入的权限问题,示例如下:

SET @MYSOLDUMP TEMP LOG BIN = COSESSION.SQL LOG BIN;SET @@SESSION.SQL LOG BIN = 0;– GTID state at the beginning of the backupSET @@GLOBAL.GTID PURGED=/*!80000 '+'*/

赞 (0)
上一篇 4天前
下一篇 4天前