Proxy导入数据的时候,出现了异常(可能是字符集)

我使用mysqldump导出的数据,然后往proxy里面导入的时候,出现了异常:

Proxy版本 5.1.1。

我使用的命令:

    mysql \
      -h$DB_HOST \
      -u$DB_USER \
      -p$DB_PASSWORD \
      -P$DB_PORT \
      ${DB_DATABASE} \
      < "$FILE"

其中,建表(某分片,其他相同)语句为:

CREATE TABLE `EMAIL_REPLY_TEAM_0` (
  `email_reply_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `email_reply_team_id` varchar(50) NOT NULL,
  `email_reply_user_id` varchar(50) NOT NULL,
  `email_reply_account_id` int(10) unsigned NOT NULL,
  `email_reply_candidate_id` varchar(50) NOT NULL,
  `email_reply_status` tinyint(1) NOT NULL DEFAULT '0',
  `email_reply_belong_sequence` int(10) unsigned NOT NULL,
  `email_reply_email_thread_id` int(10) unsigned DEFAULT NULL,
  `email_reply_schedule_utc_timestamp` bigint(20) NOT NULL,
  `email_reply_schedule_date` varchar(100) NOT NULL,
  `email_reply_schedule_timezone` varchar(100) DEFAULT NULL,
  `email_reply_subject` varchar(191) DEFAULT NULL,
  `email_reply_sender` text NOT NULL,
  `email_reply_receiver` text NOT NULL,
  `email_reply_cc` text,
  `email_reply_bcc` text,
  `email_reply_body` text,
  `email_reply_in_reply_to` varchar(191) DEFAULT NULL,
  `email_reply_reply_to_message_id` varchar(191) DEFAULT NULL,
  `email_reply_reply_to_thread_id` varchar(191) DEFAULT '',
  `email_reply_file_ids` varchar(2000) DEFAULT NULL,
  `email_reply_reminder` int(11) DEFAULT NULL,
  `email_reply_type` tinyint(1) NOT NULL DEFAULT '0',
  `email_reply_project_id` int(11) DEFAULT NULL,
  `email_reply_track_open` tinyint(1) NOT NULL DEFAULT '1',
  `email_reply_track_link` tinyint(1) NOT NULL DEFAULT '1',
  `email_reply_source` tinyint(1) NOT NULL DEFAULT '0',
  `email_reply_extra` text,
  `email_reply_update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `email_reply_create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`email_reply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

我的SQL文件(社区限制,我只能把后缀改成PPTX才能上传,改为.sql即可,不改也可):
1.pptx (4.1 MB)

同时我创建测试表,使用同样的方式直接将数据导入MySQL,成功。

我已经通过设置连接的编码字符集解决了这个问题。

之前的设置:

ADD RESOURCE database_team_default(
    URL="jdbc:mysql://mysql-hiretual.db.testhtm:3306/hiretual?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8mb4",
    USER=root,
    PASSWORD="@Htmdb098!"
);

后修改为:

ALTER RESOURCE database_team_default(
    URL="jdbc:mysql://mysql-hiretual.db.testhtm:3306/hiretual?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8",
    USER=root,
    PASSWORD="@Htmdb098!"
);

点赞:+1:
补充参考链接:"Incorrect string value" SQLException while inserting data with emoji(doesn't occur everytime) · Issue #13023 · apache/shardingsphere · GitHub

1 个赞
京ICP备2021015875号