not support xengine,if the default engine is xengine, gh-ost occurs: ERROR Error 1105: Unsupported collation on string indexed column hint

未关闭
#1,585 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 10 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
go, mysql
领域
database

调研方向

首先复现报告中的 xengine 表定义,并跟踪产生不支持的排序规则错误的 changelog 表创建路径。检查 gh-ost 如何复制已建立索引的 String 列定义,然后验证对于此 schema,changelog 创建能够成功,且不会破坏受支持的 MySQL 引擎。

由索引模型根据 Issue 内容生成。

描述

bug

root cause is xengine is not support ascii CHARACTER
mysql> CREATE TABLE _test_26_ghc ( id bigint(20) NOT NULL AUTO_INCREMENT, last_update timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, hint varchar(64) CHARACTER SET ascii NOT NULL, value varchar(4096) CHARACTER SET ascii NOT NULL, PRIMARY KEY (id), UNIQUE KEY hint_uidx (hint) ) ENGINE=xengine AUTO_INCREMENT=256 DEFAULT CHARSET=utf8mb4;
ERROR 1105 (HY000): Unsupported collation on string indexed column hint. Consider change to other collation (binary, gbk_bin, gbk_chinese_ci, latin1_bin, utf8_bin, utf8_general_ci, utf8mb4_0900_ai_ci, utf8mb4_bin, utf8mb4_general_ci).
mysql>

errors:
2025-09-28 15:13:46 INFO starting gh-ost 1.1.4
2025-09-28 15:13:46 INFO Migrating sbtest.test_26
2025-09-28 15:13:46 INFO inspector connection validated on xxxxx:3306
2025-09-28 15:13:46 INFO User has REPLICATION CLIENT, REPLICATION SLAVE privileges, and has ALL privileges on sbtest.*
2025-09-28 15:13:46 INFO binary logs validated on xxxxx:3306
2025-09-28 15:13:46 INFO Inspector initiated on xxxxx:3306, version 8.0.13
2025-09-28 15:13:46 INFO Table found. Engine=XENGINE
2025-09-28 15:13:46 INFO Estimated number of rows via EXPLAIN: 20
2025-09-28 15:13:46 INFO Master forced to be xxxxx:3306
2025-09-28 15:13:46 INFO log_slave_updates validated on xxxxx:3306
2025-09-28 15:13:46 INFO streamer connection validated on xxxxx:3306
[2025/09/28 15:13:46] [info] binlogsyncer.go:133 create BinlogSyncer with config {99999 mysql xxxxx 3306 dba false false false UTC true 0 0s 0s 0 false}
2025-09-28 15:13:46 INFO Connecting binlog streamer at mysql-bin.000005:1014
[2025/09/28 15:13:46] [info] binlogsyncer.go:354 begin to sync binlog from position (mysql-bin.000005, 1014)
[2025/09/28 15:13:46] [info] binlogsyncer.go:203 register slave for master server xxxxx:3306
[2025/09/28 15:13:46] [info] binlogsyncer.go:723 rotate to (mysql-bin.000005, 1014)
2025-09-28 15:13:46 INFO rotate to next log from mysql-bin.000005:0 to mysql-bin.000005
2025-09-28 15:13:46 INFO applier connection validated on xxxxx:3306
2025-09-28 15:13:46 INFO applier connection validated on xxxxx:3306
2025-09-28 15:13:46 INFO will use time_zone='+08:00' on applier
2025-09-28 15:13:46 INFO Examining table structure on applier
2025-09-28 15:13:46 INFO Applier initiated on xxxxx:3306, version 8.0.13
2025-09-28 15:13:46 INFO Dropping table sbtest._test_26_gho
2025-09-28 15:13:46 INFO Table dropped
2025-09-28 15:13:46 INFO Dropping table sbtest._test_26_ghc
2025-09-28 15:13:46 INFO Table dropped
2025-09-28 15:13:46 INFO Creating changelog table sbtest._test_26_ghc
2025-09-28 15:13:46 ERROR Error 1105: Unsupported collation on string indexed column hint. Consider change to other collation (binary, gbk_bin, gbk_chinese_ci, latin1_bin, utf8_bin, utf8_general_ci, utf8mb4_0900_ai_ci, utf8mb4_bin, utf8mb4_general_ci).
2025-09-28 15:13:46 ERROR Unable to create changelog table, see further error details. Perhaps a previous migration failed without dropping the table? OR is there a running migration? Bailing out
2025-09-28 15:13:46 INFO Tearing down inspector
2025-09-28 15:13:46 INFO Tearing down applier
2025-09-28 15:13:46 INFO Tearing down streamer
2025-09-28 15:13:46 FATAL Error 1105: Unsupported collation on string indexed column hint. Consider change to other collation (binary, gbk_bin, gbk_chinese_ci, latin1_bin, utf8_bin, utf8_general_ci, utf8mb4_0900_ai_ci, utf8mb4_bin, utf8mb4_general_ci).

主要语言
Go
星标
13.6k
派生
1.4k
平均合并
9 天 19 小时
30 天内合并 PR
1

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/gh-ost 的其他 Issue

查看 github/gh-ost 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。