GreatSQL社区

搜索

[已解决] mysql5.7.37升级到greatSQL8.0.25时报错

1996 16 2023-3-22 14:26

下面是截取的部分报错日志


2023-03-22T14:16:22.752376+08:00 5 [Note] [MY-012478] [InnoDB] DDL log delete : 14
2023-03-22T14:16:22.755299+08:00 5 [Note] [MY-012472] [InnoDB] DDL log insert : [DDL record: FREE, id=15, thread_id=5, space_id=4294967294, index_id=14485, page_no=2312]
2023-03-22T14:16:22.756094+08:00 5 [Note] [MY-012478] [InnoDB] DDL log delete : 15
2023-03-22T14:16:22.760675+08:00 5 [Note] [MY-012485] [InnoDB] DDL log post ddl : begin for thread id : 5
2023-03-22T14:16:22.761433+08:00 5 [Note] [MY-012486] [InnoDB] DDL log post ddl : end for thread id : 5
2023-03-22T14:16:22.845916+08:00 5 [Note] [MY-012485] [InnoDB] DDL log post ddl : begin for thread id : 5
2023-03-22T14:16:22.846865+08:00 5 [Note] [MY-012486] [InnoDB] DDL log post ddl : end for thread id : 5
2023-03-22T14:16:22.847644+08:00 5 [ERROR] [MY-013178] [Server] Execution of server-side SQL statement 'ALTER TABLE proxies_priv MODIFY Host char(255) CHARACTER SET ASCII DEFAULT '' NOT NULL, ENGINE=InnoDB; ' failed with error code = 1031, error message = 'Table storage engine for '#sql-45e8_5' doesn't have this option'.
2023-03-22T14:16:22.851750+08:00 0 [ERROR] [MY-013380] [Server] Failed to upgrade server.
2023-03-22T14:16:22.853806+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2023-03-22T14:16:22.853971+08:00 0 [Note] [MY-012330] [InnoDB] FTS optimize thread exiting.


全部回复(16)
sky凌乱 2023-3-22 14:41:52
1、由社区版本的mysql5.7.37升级到greatSQL8.0.25版本
2、首先关闭mysql,set global innodb_fast_shutdown = 0,然后shutdown
3、将mysql5.7.37的二进制安装包替换为greatSQL的二进制文件包
4、添加greatSQL8.0.25需要的升级参数
log_error_verbosity=3
innodb_print_ddl_logs = ON
upgrade = FORCE
default_authentication_plugin=mysql_native_password

5、使用mysqld --user=mysql启动mysql,然后报上述的错误。

下面是报错表的DDL
CREATE TABLE `proxies_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proxied_user` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
  `With_grant` tinyint(1) NOT NULL DEFAULT '0',
  `Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`) USING BTREE,
  KEY `Grantor` (`Grantor`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=FIXED COMMENT='User proxy privileges'
yejr 2023-3-22 15:18:27
sky凌乱 发表于 2023-3-22 14:41
1、由社区版本的mysql5.7.37升级到greatSQL8.0.25版本
2、首先关闭mysql,set global innodb_fast_shutdown ...

我用GreatSQL 5.7.36-39版本,直接用in-place方式升级到GreatSQL 8.0.25-16版本,一切正常,上述表也能正常升级,详见截图

yejr 2023-3-22 15:30:51
yejr 发表于 2023-3-22 15:18
我用GreatSQL 5.7.36-39版本,直接用in-place方式升级到GreatSQL 8.0.25-16版本,一切正常,上述表也能正 ...

那有可能是你以往升级过程中,几个元数据表没正确升级。
可以在5.7环境下,先跑mysql_upgrade(或者 mysql_upgrade -S只升级系统库表)再升级一把看看。
sky凌乱 2023-3-22 15:36:18
yejr 发表于 2023-3-22 15:30
那有可能是你以往升级过程中,几个元数据表没正确升级。
可以在5.7环境下,先跑mysql_upgrade(或者 mysq ...

1、我这边测试了下,社区版本的5.7.37升级到39,然后在升级8.0.25还是报那个错误。但是如果我使用5.7.37的版本重新初始化,在进行升级到8.0.25就不报错了。
2、而且我在升级到5.7.39时,mysql_upgrade系统表没有提示报错,都是显示ok的。
yejr 2023-3-22 15:39:32
yejr 发表于 2023-3-22 15:30
那有可能是你以往升级过程中,几个元数据表没正确升级。
可以在5.7环境下,先跑mysql_upgrade(或者 mysq ...

刚又测试了下,我从MySQL社区版5.7.37版本直接原地升级到GreatSQL 8.0.25-16也是正常的
yejr 2023-3-22 15:39:53
sky凌乱 发表于 2023-3-22 15:36
1、我这边测试了下,社区版本的5.7.37升级到39,然后在升级8.0.25还是报那个错误。但是如果我使用5.7.37 ...

看看我上一个回帖的建议:
可以在5.7环境下,先跑mysql_upgrade(或者 mysql_upgrade -S只升级系统库表)再升级一把看看。
yejr 2023-3-22 15:58:04
yejr 发表于 2023-3-22 15:39
看看我上一个回帖的建议:
可以在5.7环境下,先跑mysql_upgrade(或者 mysql_upgrade -S只升级系统库表) ...

这个升级前的检查和注意事项文档可以先看看

https://gitee.com/GreatSQL/Great ... D%E5%87%86%E5%A4%87
sky凌乱 2023-3-22 16:27:18
yejr 发表于 2023-3-22 15:58
这个升级前的检查和注意事项文档可以先看看

https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/user ...

在执行$ /usr/local/GreatSQL-5.7.36-39-Linux-glibc2.28-x86_64/bin/mysql_upgrade -s -f -S/data/GreatSQL/mysql.sock
后升级依旧失败。

通过测试修改语句后发现,是因为ROW_FORMAT=FIXED导致的修改语句报错,将报错的表修改为:ROW_FORMAT =DYNAMIC。为防止后续表也存在这个问题,我将mysq库内的表ROW_FORMAT都修改为DYNAMIC。在重新进行升级8.0时,升级成功。
yejr 2023-3-22 16:28:33
sky凌乱 发表于 2023-3-22 16:27
在执行$ /usr/local/GreatSQL-5.7.36-39-Linux-glibc2.28-x86_64/bin/mysql_upgrade -s -f -S/data/Great ...

报错信息是啥,也贴一下。
另外,row_format支持FIXED格式吗?我咋完全没印象了。。。
12下一页
sky凌乱

5

主题

0

博客

24

贡献

新手上路

Rank: 1

积分
43

助人为乐(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-11-21 20:32 , Processed in 0.046073 second(s), 22 queries , Redis On.
快速回复 返回顶部 返回列表