本文介绍 mysqldump 还原导入错误报 1300 错误时的问题排查和处理方法。
适用版本
OceanBase 数据库 V3.x 及之前版本
问题现象
使用 mysqldump 工具导出的数据重新导入 OceanBase 数据库时发生错误,错误信息如下。
mysqldump -hobproxy.ocp -uuser@tenant#cluster -p'password' -PXXXX --replace --opt -t --triggers=false --skip-lock-tables <table_name> << /path_to_dump/dump_result.sql
ERROR 1300 (HY000): Invalid utf8mb4 character string
问题原因
根据错误信息,推测可能是由于 mysqldump 工具导出的表中含有 BLOB 类型字段,且字段有非显示字符。
解决方法
导出时如果表字段有 BINARY、VARBINARY、BLOB 或 BIT 类型,在 mysqldump 备份命令里还需要加上参数 --hex-blob,将这些类型导出为十六进制。
mysqldump -hobproxy.ocp -uuser@tenant#cluster -p'password' -PXXXX --replace --hex-blob --opt -t --triggers=false --skip-lock-tables <table_name> >> /path_to_dump/dump_result.sql