一、升级前的准备工作
mysqldump工具备份所有数据库:mysqldump -u root -p --all-databases > full_backup.sql
也可使用mariabackup(MariaDB官方工具)进行物理备份(适用于大型数据库):sudo mariabackup --backup --user=mariabackup_user --password=mariabackup_passwd --target-dir=/data/backup/preupgrade_backup
mysql -u root -p -e "SELECT VERSION();"
# 或
mysql -V
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
sudo ./mariadb_repo_setup --mariadb-server-version "mariadb-10.5"
sudo apt update
二、使用包管理器升级(推荐,适用于Ubuntu/CentOS等)
sudo apt update # Debian/Ubuntu
sudo yum update # CentOS/RHEL
sudo apt install mariadb-server mariadb-client # Debian/Ubuntu
sudo yum upgrade mariadb-server mariadb-client # CentOS/RHEL
sudo systemctl restart mariadb
sudo systemctl enable mariadb # 设置开机自启
mysql_upgrade(或mariadb-upgrade)修复表结构兼容性问题:sudo mysql_upgrade -u root -p
# 或(新版本MariaDB中mysql_upgrade已整合到mariadb-upgrade)
sudo mariadb-upgrade -u root -p
三、手动编译升级(适用于特定版本或自定义需求)
wget https://dlm.mariadb.com/3895090/MariaDB/mariadb-11.5.2/source/mariadb-11.5.2.tar.gz
tar xvf mariadb-11.5.2.tar.gz
cd mariadb-11.5.2
cmake配置编译选项,然后编译安装:cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/usr/local/mariadb/data
make
sudo make install
sudo systemctl stop mariadb/usr/local/mariadb/data),将新版本数据目录复制到旧位置。my.cnf),确保basedir和datadir指向正确路径。sudo /usr/local/mariadb/support-files/mysql.server startsudo /usr/local/mariadb/bin/mysql_upgrade -u root -p --force
四、升级后验证
mysql -u root -p -e "SELECT VERSION();"
# 或
mysql -V
sudo systemctl status mariadb
五、注意事项
sudo apt install -f(Debian/Ubuntu)或sudo yum install -y(CentOS/RHEL)修复。/etc/mysql/mariadb.conf.d/50-server.cnf),建议先备份旧配置,再选择“保留当前版本”(输入N)或“安装维护者版本”(输入Y),避免自定义设置丢失。/var/log/mysql/error.log(或/var/log/mariadb/mariadb.log),及时处理错误信息。