如何升级MariaDB数据库?
- By : Will
- Category : MySQL & MariaDB
MySQL & MariaDB
1 前言
一个问题,一篇文章,一出故事。
今天测试Keycloak的升级,遇到如下错误提示,
RROR: Failed to start server in (production) mode ERROR: [PersistenceUnit: keycloak-default] Unable to build Hibernate SessionFactory ERROR: Persistence unit 'keycloak-default' was configured to run with a database version of at least '10.6.0', but the actual version is '10.5.22'. Consider upgrading your database. Alternatively, rebuild your application with 'jakarta.persistence.database-product-version=10.5.22' (but this may disable some features and/or impact performance negatively).
大致意思是数据库版本过低,没有满足Keycloak的需求。
2 最佳实践
2.1 测试环境
2.2 升级前的准备
2.2.1 备份数据库
mysqldump -u root -p --all-databases > /data/backup/mariadb_backup.sql
2.2.2 停止数据库服务
systemctl stop mariadb
2.2.3 设置安装源
vim /etc/yum.repos.d/mariadb-10.6-rhel9-amd64.repo
加入如下配置,
[mysql10.6-community] name=MySQL 10.6 Community Server baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.6/rhel/9/x86_64/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
2.3 升级步骤
2.3.1 升级MariaDB
dnf install -y MariaDB-server-10.6.25
上面的是基于MariaDB官方源的安装,如果是默认安装的MariaDB,你可能需要使用如下命令先卸载,
dnf remove -y mariadb-server
升级完成后,你需要使用如下命令查看升级的版本,
mysql --version
可见如下提示,
mysql Ver 15.1 Distrib 10.6.25-MariaDB, for Linux (x86_64) using EditLine wrapper
2.3.2 启动数据库服务并设置自启动
systemctl start mariadb systemctl enable mariadb
2.3.3 查看启动后的状态
# 启动数据库服务并检查版本
systemctl status mariadb
如果启动遇到如下错误提示,
Mar 06 16:08:36 rhbkdev01.cmdschool.org mariadbd[32628]: 2026-03-06 16:08:36 0 [ERROR] Incorrect definition of table mysql.event: expected column 'definer' at position 3 to have type varchar(, found type char(141). Mar 06 16:08:36 rhbkdev01.cmdschool.org mariadbd[32628]: 2026-03-06 16:08:36 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
以上错误需要按如下步骤修复,
mysql -u root -p USE mysql; ALTER TABLE event MODIFY COLUMN definer VARCHAR(91) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL DEFAULT ''; systemctl restart mariadb
没有评论