
mysql 5.7.x 升级到8.0.32
原来使用的rpm安装的, 新版本是.tar.gz包升级.
在使用新版本的mysqld启动的时候遇到报错如下
2023-10-09T01:55:44.462158Z 2 [ERROR] [MY-013140] [Server] 'DB_XX.TABLE_XX.COLUMN_XX' contains an invalid utf8mb3 character string:大概10多条这样的报错, 然后就启动失败了.
该报错为那张表的那个字段包含了无效字符. 可以使用show create table XX查看发现注释确实有无效字符.
show create table DB_XX.TABLE_XX修改该注释为有效字符串或者去掉该注释即可
alter table DB_XX.TABLE_XX modify column COLUMN_XX int comment '';每张表遇到第一个无效的字符就会停止检查并报错, 也就是该表可能还有其它无效字符, 可以顺便一起改了, 不然后面一个个报错,改起来麻烦.
修改完后, 使用mysqld启动成功了. 准备使用mysql_upgrade升级数据字典的时候, 发现不需要手动执行了(mysqld已经干完了.)

升级过程大概如下: 1. 下载并上传mysql 8.0.32
2. 解压mysql 8.0.32 到 /usr/loca/mysql目录
3. 修改配置文件: 设置basedir = /usr/loca/mysql 稳一点,可以再备份下datadir目录
4. 修改相关服务, 就改下mysqld路径即可
5. 修改有问题的注释(根据启动报错来的)
6. 启动mysql
7. 使用mysql_upgrade连接mysql去升级相关字典(8.0.16开始就不需要手动执行了)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。