pt-duplicate-key-checker报Wide character in print at xxx错误总结
2024-06-25 23:08 潇湘隐者 阅读(72) 评论(0) 编辑 收藏 举报使用Percona Toolkit的pt-duplicate-key-checker工具时,偶尔会遇到"Error checking xxx: Wide character in print at /usr/bin/pt-duplicate-key-checker line 5248."这类错误。如下例子所示
$ pt-duplicate-key-checker -hlocalhost -P7306 -uroot -pxxxxxx --socket /tmp/mysql.sock
# ########################################################################
# kerry.employee
# ########################################################################
# ix_employee_n2 is a duplicate of ix_employee_n1
# Key definitions:
# KEY `ix_employee_n2` (`employee_name`)
# KEY `ix_employee_n1` (`employee_name`),
# Column types:
Error checking kerry.employee: Wide character in print at /usr/bin/pt-duplicate-key-checker line 5248.
.........................................................................
.........................................................................

遇到这个错误,是因为perl程序中处理中文等宽字符时,perl不能识别要处理的内容。所以你必须使用参数--charset指定字符集为utf8,才能避免这个错误。如下所示
$ pt-duplicate-key-checker -hlocalhost -P7306 -uroot --ask-pass --socket /tmp/mysql.sock --charset=utf8
Enter password:
# ########################################################################
# kerry.employee
# ########################################################################
# ix_employee_n2 is a duplicate of ix_employee_n1
# Key definitions:
# KEY `ix_employee_n2` (`employee_name`)
# KEY `ix_employee_n1` (`employee_name`),
# Column types:
# `employee_name` varchar(30) collate utf8mb4_general_ci default null comment '员工姓名'
# To remove this duplicate index, execute:
ALTER TABLE `kerry`.`employee` DROP INDEX `ix_employee_n2`;
小知识点:
在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, Perl管它叫string. 也就是说: Perl只熟悉两种编码: Ascii(octets)和utf8(string).Perl只能处理两种编码:ascii码和utf-8。ascii码是很少的,像中文、日文、韩文等字符要想能被perl处理,只能用utf-8编码方式。

· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2019-06-25 ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS
2019-06-25 Oracle 10g&11g安装卸载Oracle Label Security
2019-06-25 [转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)
2018-06-25 ORACLE中Scalar subquery Caching的hash table大小测试浅析
2013-06-25 MS SQL 2008 发布订阅配置错误总结