[MYSQL案例][018] mysql5.7升级到8.0报错MY-013140 contains an invalid utf8mb3 character

2023-10-09 11:22:03 浏览数 (1)

背景

mysql 5.7.x 升级到8.0.32

原来使用的rpm安装的, 新版本是.tar.gz包升级.

在使用新版本的mysqld启动的时候遇到报错如下

代码语言:javascript复制
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查看发现注释确实有无效字符.

代码语言:javascript复制
show create table DB_XX.TABLE_XX

解决办法和总结

修改该注释为有效字符串或者去掉该注释即可

代码语言:javascript复制
alter table DB_XX.TABLE_XX modify column COLUMN_XX int comment '';

每张表遇到第一个无效的字符就会停止检查并报错, 也就是该表可能还有其它无效字符, 可以顺便一起改了, 不然后面一个个报错,改起来麻烦.

修改完后, 使用mysqld启动成功了. 准备使用mysql_upgrade升级数据字典的时候, 发现不需要手动执行了(mysqld已经干完了.)

来自官网: https://dev.mysql.com/doc/refman/8.0/en/mysql-upgrade.html来自官网: https://dev.mysql.com/doc/refman/8.0/en/mysql-upgrade.html

升级过程大概如下: 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开始就不需要手动执行了)

0 人点赞