3.13 升级故障排除
-
MySQL 8.3实例中的架构不匹配,可能会导致MySQL 8.4升级失败。这种不匹配可能是由于
.frm
文件损坏。要解决这个问题,请在升级前将受影响的表dump和恢复。 -
如果出现问题,例如新mysqld服务器无法启动,验证您是否有旧的
my.cnf
文件来自之前的安装。您可以使用--print-defaults
选项(例如mysqld --print-defaults)。如果该命令显示除程序名称外的内容,您有活动的my.cnf
文件,该文件影响服务器或客户端操作。 -
如果在升级后,您遇到编译客户端程序的问题,例如
Commands out of sync
或意外的核心崩溃,您可能使用了旧的头文件或库文件编译您的程序。在这种情况下,请检查mysql.h
文件和libmysqlclient.a
库的日期,以确保它们来自新的MySQL分布。如果不是,请重新编译您的程序使用新的头文件和库。重新编译可能还需要对使用共享客户端库的程序,如果库的主要版本号已更改(例如从libmysqlclient.so.20
到libmysqlclient.so.21
)。 -
如果您创建了一个具有给定名称的可加载函数,并且升级到实现了新built-in函数的同名的MySQL版本,该可加载函数将变得不可访问。要解决这个问题,请使用
DROP FUNCTION
删除可加载函数,然后使用CREATE FUNCTION
重新创建可加载函数使用不同的非冲突名称。类似地,如果新版本的MySQL实现了同名的built-in函数,可以使用Section 11.2.5, “函数名称解析和Resolution”了解服务器如何解释不同类型函数的引用。 -
如果升级到MySQL 8.4由于任何在Section 3.6, “Preparing Your Installation for Upgrade”中列出的问题失败,服务器将回退到数据目录的所有更改。在这种情况下,请删除所有redo日志文件,然后在现有数据目录上重新启动MySQL 8.3服务器以解决错误。redo日志文件(
ib_logfile*
)默认位于MySQL数据目录中。解决错误后,请执行慢速关闭(通过设置innodb_fast_shutdown=0
)然后再次尝试升级。