升级Linux上的MariaDB:分步指南与注意事项
备份所有重要数据
升级前必须备份数据库,防止数据丢失。推荐使用mysqldump工具导出所有数据库:
mysqldump -u root -p --all-databases > full_backup.sql
输入密码后,会将所有数据库保存到full_backup.sql文件中。
检查当前MariaDB版本
确认当前安装的版本,确保升级路径符合官方要求(如10.3→10.4→10.5):
mysql -u root -p -e "SELECT VERSION();"
验证系统兼容性
查阅MariaDB官方升级指南,确认新版本与你的Linux发行版、硬件架构及依赖软件(如应用程序、插件)兼容。
sudo apt update
sudo apt upgrade mariadb-server mariadb-client
sudo systemctl restart mariadb
mysql -V # 输出示例:mysql Ver 15.1 Distrib 10.6.12-MariaDB
sudo yum update
yum升级mariadb-server包:sudo yum upgrade mariadb-server
sudo systemctl restart mariadb
mysql -V
若需安装最新版本或特定版本(如10.5),可通过添加MariaDB官方仓库实现:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --mariadb-server-version=10.5
sudo apt update
sudo apt install mariadb-server-10.5 mariadb-client-10.5
sudo yum install https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
sudo yum install https://yum.mariadb.org/10.5/centos7-amd64/rpm/MariaDB10.5-community.rpm
sudo yum-config-manager --add-repo https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
sudo yum install mariadb-server
若通过源码安装旧版本,或包管理器无法满足需求,可手动升级:
sudo systemctl stop mariadb
data目录(默认路径为/var/lib/mysql或/usr/local/mariadb/data)备份:cp -r /var/lib/mysql /var/lib/mysql.bak
sudo apt remove --purge mariadb-server # Ubuntu/Debian
sudo yum remove mariadb-server # CentOS/RHEL
wget https://downloads.mariadb.org/MariaDB/mariadb-10.5.12/bintar-linux-x86_64/mariadb-10.5.12-linux-x86_64.tar.gz
tar xf mariadb-10.5.12-linux-x86_64.tar.gz
mv mariadb-10.5.12-linux-x86_64 /usr/local/mariadb
ln -s /usr/local/mariadb /usr/local/mysql # 可选:创建软连接
chown -R mysql:mysql /usr/local/mariadb # 设置所有权
data目录复制到新版本的安装路径,运行mysql_upgrade修复表结构:cp -r /var/lib/mysql.bak/* /usr/local/mariadb/data/
/usr/local/mariadb/bin/mysql_upgrade -uroot -p --force
/usr/local/mariadb/support-files/mysql.server start # 或使用systemctl
mysql -V
sudo systemctl status mariadb
mysql_secure_installation设置root密码、删除匿名用户、禁止远程root登录:sudo mysql_secure_installation
/var/log/mysql/error.log或/var/log/mariadb/mariadb.log),确认无错误信息。libmysqlclient、openssl)满足新版本要求,必要时使用apt或yum自动解决依赖。