Debian系统MariaDB版本升级指南
升级前必须备份数据,防止操作失误导致数据丢失。推荐使用mysqldump
工具备份所有数据库:
mysqldump -u root -p --all-databases > /path/to/full_backup.sql
或直接复制MariaDB数据目录(需停止服务):
systemctl stop mariadb cp -a /var/lib/mysql /var/lib/mysql.bak systemctl start mariadb
注:备份文件需存储在安全位置(如外部存储设备或云存储)。
确认当前安装的MariaDB版本,确保升级路径符合官方要求(如5.5→10.1→10.5→11.x):
mysql -u root -p -e "SELECT VERSION();"
或通过服务状态查看:
systemctl status mariadb | grep "Version"
Debian默认仓库的MariaDB版本可能滞后,需添加官方仓库以获取最新版本。
wget -qO - https://packages.mariadb.org/mariadb/release/signing-key.asc | sudo apt-key add -
注:若提示apt-key
已弃用,可将密钥添加至trusted.gpg.d
目录:
sudo mkdir -p /etc/apt/keyrings sudo mv /usr/share/keyrings/mariadb.gpg /etc/apt/keyrings/
根据Debian版本(如Bookworm、Bullseye)替换$(lsb_release -cs)
(可通过lsb_release -cs
命令获取):
echo "deb [arch=amd64,arm64] https://packages.mariadb.org/mariadb/repo/$(lsb_release -cs)/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mariadb.list
sudo apt update
使用apt
安装最新版本的MariaDB Server,系统会自动处理依赖关系:
sudo apt install mariadb-server
注意:若已安装旧版本,apt
会提示升级;若需指定版本(如11.5.2),可修改命令为:
sudo apt install mariadb-server=11.5.2-1~bookworm
升级过程中,系统可能提示配置文件(如/etc/mysql/mariadb.conf.d/50-server.cnf
)有冲突。选择操作:
登录MariaDB,检查版本是否升级成功:
mysql -u root -p -e "SELECT VERSION();"
或直接在终端执行:
mariadb --version
确保升级后的配置生效:
sudo systemctl restart mariadb
检查服务状态:
sudo systemctl status mariadb
若升级跨度较大(如5.5→10.x),可能需要运行mysql_upgrade
工具修复表结构:
sudo mysql_upgrade -u root -p
注:较新版本的MariaDB(≥10.4)会自动执行此步骤,无需手动运行。
若遇到依赖冲突(如mariadb-server
与现有包冲突),可使用aptitude
工具解决:
sudo apt install aptitude sudo aptitude install mariadb-server
根据提示选择解决方案(如移除冲突包或保留当前版本)。
若升级后配置文件被覆盖,可从备份中恢复:
cp /etc/mysql/mariadb.conf.d/50-server.cnf.bak /etc/mysql/mariadb.conf.d/50-server.cnf
或手动合并自定义配置(如bind-address
、innodb_buffer_pool_size
)。
检查MariaDB错误日志(通常位于/var/log/mysql/error.log
),常见原因包括:
[mysqld]
段缺少闭合括号);mysql:mysql
拥有/var/lib/mysql
目录的所有权);systemctl status mariadb
)和性能(如SHOW GLOBAL STATUS;
),确保无异常。