返回列表 发帖
楼主: jjii33

[已解决] 升级UCenter 1.7,提示错误1031

23

主题

5270

回帖

9407

积分

应用开发者

贡献
498 点
金币
1421 个
QQ
发表于 2023-5-22 19:45:45 来自手机 | 查看全部
myawei 发表于 2023-5-22 18:48
测试了一下HeidiSQL,还不太熟悉,导出的数据表结构如下。

你对比下navicat导出,会发现有所不同
回复

使用道具 举报

27

主题

136

回帖

175

积分

渐入佳境

贡献
1 点
金币
1 个
 楼主| 发表于 2023-5-22 23:26:07 | 查看全部
这样是看不出来的,要看错误提示
回复

使用道具 举报

10

主题

64

回帖

87

积分

渐入佳境

贡献
1 点
金币
3 个
发表于 2023-5-23 12:33:24 | 查看全部
湖中沉 发表于 2023-5-22 19:45
你对比下navicat导出,会发现有所不同

谢谢老兄,认真对比后发现确实有所不同,主要在下面两句,摘出来请指教是哪里的问题呢。

phpmyadmin备份的数据表:

  1. 1.  `username` char(15) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  2. 2.ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
复制代码

navicat备份的数据表:
  1. 1.  `username` char(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  2. 2. ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
复制代码





回复

使用道具 举报

23

主题

5270

回帖

9407

积分

应用开发者

贡献
498 点
金币
1421 个
QQ
发表于 2023-5-23 12:58:16 | 查看全部
myawei 发表于 2023-5-23 12:33
谢谢老兄,认真对比后发现确实有所不同,主要在下面两句,摘出来请指教是哪里的问题呢。

phpmyadmin备份 ...

关键就是ROW_FORMAT这个,是多余的,他会导致每个重新导入的数据表的ROW_FORMAT被强制设定而非默认值,这样在其他程序操作的时候,就会出错。
除了navicat,其他见过的数据库操作软件导出数据均不会带这个ROW_FORMAT值
回复

使用道具 举报

23

主题

5270

回帖

9407

积分

应用开发者

贡献
498 点
金币
1421 个
QQ
发表于 2023-5-23 13:01:48 | 查看全部
myawei 发表于 2023-5-23 12:33
谢谢老兄,认真对比后发现确实有所不同,主要在下面两句,摘出来请指教是哪里的问题呢。

phpmyadmin备份 ...

另外,一般正常导出,带上CHARSET=xxx就可以了,navicat不知道出于什么考虑,导出的是CHARACTER SET = xxx
回复

使用道具 举报

10

主题

64

回帖

87

积分

渐入佳境

贡献
1 点
金币
3 个
发表于 2023-5-23 13:21:29 | 查看全部
湖中沉 发表于 2023-5-23 12:58
关键就是ROW_FORMAT这个,是多余的,他会导致每个重新导入的数据表的ROW_FORMAT被强制设定而非默认值,这 ...

原来是这里的问题,我原来猜想的是phpmyadmin是DEFAULT CHARSET=utf8mb4,而navicat的是CHARACTER SET = utf8mb4,它没有DEFAULT,原来是ROW_FORMAT = Dynamic,看数据表,确实Dynamic和InnoDB好像关联紧密。又多了几分了解,非常感谢!
回复

使用道具 举报

10

主题

64

回帖

87

积分

渐入佳境

贡献
1 点
金币
3 个
发表于 2023-5-23 13:53:45 | 查看全部
湖中沉 发表于 2023-5-23 13:01
另外,一般正常导出,带上CHARSET=xxx就可以了,navicat不知道出于什么考虑,导出的是CHARACTER SET = xx ...


也是很奇怪,翻看了下之前3.2版本用navicat备份的数据,里面也是有ROW_FORMAT,但是恢复很正常。莫非是MyISAM换成InnoDB,ROW_FORMAT这个就不能用了?

  1. ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Dynamic;
复制代码
  1. ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = gbk COLLATE = gbk_chinese_ci ROW_FORMAT = Fixed;
复制代码


回复

使用道具 举报

23

主题

5270

回帖

9407

积分

应用开发者

贡献
498 点
金币
1421 个
QQ
发表于 2023-5-23 14:54:33 | 查看全部
myawei 发表于 2023-5-23 13:53
也是很奇怪,翻看了下之前3.2版本用navicat备份的数据,里面也是有ROW_FORMAT,但是恢复很正常。莫非是M ...

变更数据库引擎对ROW_FORMAT是有要求的,所以这问题只在3.5的升级上出现问题,其他版本升级或者备份恢复是无关的
回复

使用道具 举报

10

主题

64

回帖

87

积分

渐入佳境

贡献
1 点
金币
3 个
发表于 2023-5-23 16:28:40 | 查看全部
湖中沉 发表于 2023-5-23 14:54
变更数据库引擎对ROW_FORMAT是有要求的,所以这问题只在3.5的升级上出现问题,其他版本升级或者备份恢复 ...

明白啦,谢谢呀!!
回复

使用道具 举报

27

主题

136

回帖

175

积分

渐入佳境

贡献
1 点
金币
1 个
 楼主| 发表于 2023-5-23 23:21:31 | 查看全部
学习了,我的反复测试,没有出现问题~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2025-5-8 15:05 , Processed in 0.071131 second(s), 29 queries .

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表