Mysql数据库设计不合理导致ipv6记录出错,数据库无法完成迁移
hfish版本 v3.3.4
我在尝试将数据从SQLite迁移至mysql的时候,发生了一下报错
从图中可以看出是数据库数值过长导致的错误,无法完成迁移
仔细查看系统报错产生的信息以及插入的相关sql语句,可以发现是“ipaddress”表中的“ip”这一列数据过长,插入的“ip”数值应为一个ipv6地址“2001:19f0:6001:2c59:beef:45:c1a2:cc1b”,就是这条数据发生了错误
使用navicat连接数据查看该“ipaddress”表可以发现,“ip”字段使用的是varchar(32)
一个全写的ipv6地址的最大长度应为39个字,这里使用varchar(32)明显不合理。我尝试手动修改数据类型后再执行迁移,但没有起到任何作用,在页面执行该数据库迁移时,系统似乎会重新构建该表项
以上,该数据数值设计问题理论上会可能影响多数ipv6记录入库,希望可以尽快调整相关的sql语句,将varchar(32)改成varchar(40)或者更高以解决该bug
试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表
我也遇到了同样的问题
试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表
老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的
暂时切换数据库成功,我先连接上了数据库,然后选择切换数据库,在切换的过程中,去把ipaddress表内的ip字段长度修改到了128.然后保存就切换成了
试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表
老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的
直接关闭主机的就行
试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表
老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的
记得进去后清楚一下数据
试了一下只能先用内置的数据库登录,然后关闭ipv6再去设置里面清楚全部数据后配置mysql,接着在修改数据库里面的表
老哥请问下如何修改关闭ipv6,是关闭主机的ipv6么,还是这个hfish的
记得进去后清楚一下数据
好的,谢谢老哥,现在已经连接上了
这个BUG今天也遇上了,清了记录把ip字段长度最大改到768也没用。试了一下那个老哥的方法,切换的时候修改字段长度也不行。两三个小时记录就过万了,sqllite卡的一批。也只有禁止ipv6一个方法了