HFish icon indicating copy to clipboard operation
HFish copied to clipboard

Mysql数据库设计不合理导致ipv6记录出错,数据库无法完成迁移

Open TigerIIAusfB opened this issue 10 months ago • 8 comments

hfish版本 v3.3.4

我在尝试将数据从SQLite迁移至mysql的时候,发生了一下报错

Image

从图中可以看出是数据库数值过长导致的错误,无法完成迁移

仔细查看系统报错产生的信息以及插入的相关sql语句,可以发现是“ipaddress”表中的“ip”这一列数据过长,插入的“ip”数值应为一个ipv6地址“2001:19f0:6001:2c59:beef:45:c1a2:cc1b”,就是这条数据发生了错误

使用navicat连接数据查看该“ipaddress”表可以发现,“ip”字段使用的是varchar(32)

Image

一个全写的ipv6地址的最大长度应为39个字,这里使用varchar(32)明显不合理。我尝试手动修改数据类型后再执行迁移,但没有起到任何作用,在页面执行该数据库迁移时,系统似乎会重新构建该表项

以上,该数据数值设计问题理论上会可能影响多数ipv6记录入库,希望可以尽快调整相关的sql语句,将varchar(32)改成varchar(40)或者更高以解决该bug

TigerIIAusfB avatar Feb 17 '25 11:02 TigerIIAusfB

试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表

1335344215 avatar Feb 20 '25 13:02 1335344215

我也遇到了同样的问题

TTcheng avatar Feb 23 '25 15:02 TTcheng

试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表

老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的

TIANXUAN13 avatar Mar 02 '25 13:03 TIANXUAN13

暂时切换数据库成功,我先连接上了数据库,然后选择切换数据库,在切换的过程中,去把ipaddress表内的ip字段长度修改到了128.然后保存就切换成了

TIANXUAN13 avatar Mar 02 '25 13:03 TIANXUAN13

试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表

老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的

直接关闭主机的就行

1335344215 avatar Mar 02 '25 13:03 1335344215

试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表

老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的

记得进去后清楚一下数据

1335344215 avatar Mar 02 '25 13:03 1335344215

试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表

老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的

记得进去后清楚一下数据

好的,谢谢老哥,现在已经连接上了

TIANXUAN13 avatar Mar 02 '25 13:03 TIANXUAN13

这个BUG今天也遇上了,清了记录把ip字段长度最大改到768也没用。试了一下那个老哥的方法,切换的时候修改字段长度也不行。两三个小时记录就过万了,sqllite卡的一批。也只有禁止ipv6一个方法了

Gm-aaa avatar Mar 08 '25 15:03 Gm-aaa