Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

建议增加$$inception_backup_information$$ 表的 host 列长度问题 #421

Closed
chaigang0 opened this issue Jan 25, 2022 · 9 comments
Closed

Comments

@chaigang0
Copy link

描述您想要的功能:

image

在执行工单时,我们有时会遇到这个抱错,
【Data too long for column 'host' at row 1.】

排查发现是备份库下的 $$inception_backup_information$$ 表的 host 列长度问题,
host 字段的长度是varchar(64) ,我们使用的AWS数据库,有时候连接地址会超过64个字符,

当然,解决这个问题,也很简单,只修改alter table $$inception_backup_information$$ modify host varchar(128) ,加大长度就可以了,

但这并不能从解本上解决,后面添加的新实例,再次执行工单,还是可能会遇到报错问题,虽然这个报错并不影响工单正常执行。

描述您考虑过的解决/替代方案:

我建议修改 $$inception_backup_information$$ 建表语句,将 host varchar(64) 修改为 varchar(128)

在 inception 项目 /sql/sql_parse.cc 文件中
链接:https://github.com/hhyo/inception/blob/master/sql/sql_parse.cc
第7994行。

可参考文档,资料,引用等:

@hanchuanchuan
Copy link
Owner

该BUG在几年前已在goincetion项目中修复.
inception项目其作者已不在维护(已闭源).

@unknowissue
Copy link

unknowissue commented Feb 25, 2022

该BUG在几年前已在goincetion项目中修复. inception项目其作者已不在维护(已闭源).

嗷嗷,他的意思是想把

func (s *session) mysqlCreateSqlBackupTable(dbname string) string {
// if not exists
buf := bytes.NewBufferString("CREATE TABLE ")
buf.WriteString(fmt.Sprintf("`%s`.`%s`", dbname, remoteBackupTable))
buf.WriteString("(")
buf.WriteString("opid_time varchar(50),")
buf.WriteString("start_binlog_file varchar(512),")
buf.WriteString("start_binlog_pos int,")
buf.WriteString("end_binlog_file varchar(512),")
buf.WriteString("end_binlog_pos int,")
buf.WriteString("sql_statement mediumtext,")
buf.WriteString("host VARCHAR(64),")
buf.WriteString("dbname VARCHAR(64),")
buf.WriteString("tablename VARCHAR(64),")
buf.WriteString("port INT,")
buf.WriteString("time TIMESTAMP,")
buf.WriteString("type VARCHAR(20),")
buf.WriteString("PRIMARY KEY(opid_time)")
buf.WriteString(")ENGINE INNODB DEFAULT CHARSET UTF8MB4;")
return buf.String()
}

这里的buf.WriteString("host VARCHAR(64),") 改大了

@Alex-wwei
Copy link

该BUG在几年前已在goincetion项目中修复. inception项目其作者已不在维护(已闭源).

修复了吗?为啥我最近也遇到了
image

@stale
Copy link

stale bot commented Apr 29, 2022

由于此问题没有最近的活动,因此已被自动标记为陈旧。如果没有进一步的活动,会作为不活跃issue关闭。感谢你对本项目的贡献。 This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@hanchuanchuan
Copy link
Owner

我理解错了,之前修复的是生成备份库名称逻辑。
该问题已修复。现在会在连接到备份库时会获取数据库表结构来自动截取host长度。新建备份表的host列长度已调整为varchar(128)。已存在的备份库可自行统一修改原始列长度(新版本会根据字段长度自动截取)。
请升级到v1.2.5-36版本后重试。

@stale stale bot removed the wontfix This will not be worked on label May 8, 2022
@cslingjun
Copy link

cslingjun commented Jun 10, 2022

我理解错了,之前修复的是生成备份库名称逻辑。 该问题已修复。现在会在连接到备份库时会获取数据库表结构来自动截取host长度。新建备份表的host列长度已调整为varchar(128)。已存在的备份库可自行统一修改原始列长度(新版本会根据字段长度自动截取)。 请升级到v1.2.5-36版本后重试。

@hanchuanchuan
goInception-linux-v1.2.5-48-ga9d54fc.tar.gz
使用的这个版本 ,仍然有这个问题。
image

image

@Urnotprepared
Copy link

Urnotprepared commented Jun 15, 2022

image

host varchar(64) DEFAULT NULL, 这个字段需要扩大

@hanchuanchuan
Copy link
Owner

是的, 很报歉我之前的修复丢失了, 可能本地误回滚导致的, 所以又重新改了一次.

@hanchuanchuan
Copy link
Owner

请升级到v1.3.0-1版本后重试.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants