2.7. 从 MariaDB 10.5 升级到 MariaDB 10.11
这部分论述了在 RHEL 9 中从 MariaDB 10.5 迁移到 MariaDB 10.11。
2.7.1. MariaDB 10.5 和 MariaDB 10.11 之间的显著区别
MariaDB 10.5 和 MariaDB 10.11 之间的显著变化包括:
-
新的
sys_schema
功能是视图、功能和程序的集合,用于提供有关数据库使用情况的信息。 -
CREATE TABLE
,ALTER TABLE
,RENAME TABLE
,DROP TABLE
,DROP DATABASE
, 和相关的数据定义语言(DDL)语句现在是原子的。语句必须完全完成,否则更改会被恢复。请注意,当使用DROP TABLE
删除多个表时,只有每个单个丢弃是原子的,而不是表的完整列表。 -
新的
GRANT … TO PUBLIC
权限可用。 -
SUPER
和READ ONLY ADMIN
权限现在分开。 -
现在,您可以在新的
UUID
数据库数据类型中存储通用唯一标识符。 - MariaDB 现在支持安全套接字层(SSL)协议版本 3。
- MariaDB 服务器现在需要正确配置 SSL 才能启动。在以前的版本中,MariaDB 静默禁用 SSL,并在 SSL 配置错误时使用不安全连接。
-
MariaDB 现在支持通过
natural_sort_key ()
函数的自然排序顺序。 -
新的
SFORMAT
功能现在可用于任意文本格式。 -
utf8
字符集(和相关 collations)现在默认是utf8mb3
的别名。 - MariaDB 支持 Unicode Collation Algorithm (UCA) 14 联合。
-
MariaDB 的
systemd
套接字激活文件现在包括在/usr/share/
目录中。请注意,它们不是 RHEL 中默认配置的一部分,而不是上游。 -
错误消息现在包含
MariaDB
字符串而不是MySQL
。 - 错误消息现在包括在中文语言中。
- 默认的 logrotate 文件已更改。在迁移到 MariaDB 10.11 前检查您的配置。
-
对于 MariaDB 和 MySQL 客户端,命令行中指定的连接属性(如
--port=3306
)现在强制客户端和服务器间的协议通信类型,如tcp
、套接字
、管道
或内存
。在以前的版本中,如果通过 UNIX 套接字连接的 MariaDB 客户端,则指定的端口会被忽略。
2.7.2. 从 RHEL 9 的 MariaDB 10.5 版本升级到 MariaDB 10.11
此流程描述了使用 dnf
和 mariadb-upgrade
工具从 mariadb-server
RPM 软件包提供的 MariaDB 10.5 升级到 mariadb:10.11
模块流。
mariadb-upgrade
实用程序由 mariadb-server-utils
子软件包提供,该子软件包作为 mariadb-server
软件包的依赖项安装。
先决条件
- 在执行升级前,备份存储在 MariaDB 数据库中的所有数据。
流程
停止 MariaDB 服务器:
# systemctl stop mariadb.service
从非模块化 MariaDB 10.5 切换到模块化 MariaDB 10.11 :
# dnf module switch-to mariadb:10.11
-
调整配置,以便位于
/etc/my.cnf.d/
中的选项文件只包含对 MariaDB 10.11 有效的选项。详情请查看 MariaDB 10.6 和 MariaDB 10.11 的上游文档。 启动 MariaDB 服务器。
在升级独立运行的数据库时:
# systemctl start mariadb.service
在升级 Galera 集群节点时:
# galera_new_cluster
mariadb
服务将自动启动。
执行 mariadb-upgrade 工具来检查和修复内部表。
在升级独立运行的数据库时:
# mariadb-upgrade
在升级 Galera 集群节点时:
# mariadb-upgrade --skip-write-binlog
有一些与原位升级相关的风险和已知问题。例如,一些查询可能无法正常工作,或者它们以与升级前不同的顺序运行。有关这些风险和问题的更多信息,以及有关原位升级的常规信息,请参阅 MariaDB 10.11 发行注记。