博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pt-osc 变更时遇到 “MySQL error 1300” 报错问题解决
阅读量:5308 次
发布时间:2019-06-14

本文共 1717 字,大约阅读时间需要 5 分钟。

 

 

目的

线上一张表的字段长度变更

`sGuid` varchar(255) DEFAULT NULL COMMENT 'sGuid'

=》

`sGuid` varchar(512) DEFAULT NULL COMMENT 'sGuid'

 

方法

pt-online-schema-change --user=xxxx--password=xxxxxx --host=127.0.0.1 --port=3306 \--charset=utf8mb4 D=db_main,t=tb_main \--alter "modify sGuid varchar(512) DEFAULT NULL COMMENT 'sGuid'" \--no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none \--critical-load="Threads_running=50" --max-load="Threads_running=100" \--print --execute

执行时报错:

2019-07-25T11:03:00 Error copying rows from `db_main`.`tb_main` to `db_main`.`_tb_main_new`: 2019-07-25T11:03:00 Copying rows caused a MySQL error 1300:    Level: Warning     Code: 1300  Message: Invalid utf8 character string: 'CE'

 

在 percona 官网找到原因:  ,这里直接贴出原因。

pt-online-schema-change could emit utf8 errors for binary PK:Workaround specify latin1 charset for pt-o-s-c:pt-online-schema-change --execute --charset=latin1 --chunk-size 2 --alter 'engine=innodb' D=test,t=brokenutf8alterpt-o-s-c still processes the table correctly (utf8mb4 symbols stored in additional varchar field are valid after pt-o-s-c run). 4-byte changes also processed correctly by pt-o-s-c triggers.Possible fix: use binary or hex literals instead of '?' substitution.

 

解决

用 latin1 字符集代替 utf8

pt-online-schema-change --user=xxxx--password=xxxxxx --host=127.0.0.1 --port=3306 \--charset=latin1 D=db_main,t=tb_main \--alter "modify sGuid varchar(512) DEFAULT NULL COMMENT 'sGuid'" \--no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none \--critical-load="Threads_running=50" --max-load="Threads_running=100" \--print --execute

 

转载于:https://www.cnblogs.com/waynechou/p/pt-osc_error1.html

你可能感兴趣的文章
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>