Ubuntu环境下升级MariaDB的注意事项
mysqldump或mariabackup工具完整备份所有数据库(包括系统表),确保备份文件存储在安全位置。例如:mysqldump -u root -p --all-databases > full_backup.sql 或 mariabackup --user=root --password=your_password --backup --target-dir=/backup/pre-upgrade。备份是应对升级过程中数据丢失或损坏的核心保障。sudo apt update确保系统获取到最新的MariaDB软件包信息,避免因包版本过旧导致升级失败。sudo apt remove --purge mariadb-server mariadb-client。卸载后需保留/etc/mysql目录下的配置文件(如my.cnf),以便新版本复用。focal):wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
sudo ./mariadb_repo_setup --mariadb-server-version "mariadb-10.6"
sudo apt update
避免使用第三方PPA或不可信源,防止安装恶意软件包。sudo apt upgrade并重启服务:sudo systemctl restart mariadb。直接跨主版本升级可能导致数据字典结构不兼容。sudo mariadb-upgrade(或mysql_upgrade)工具,自动升级系统表结构(如mysql.user、mysql.db)和修复兼容性问题。该工具会检查并更新系统表以适配新版本特性。mysql -V确认MariaDB版本已更新(如mysql Ver 15.1 Distrib 10.6.12-MariaDB);使用sudo systemctl status mariadb检查服务是否正常运行(状态应为active (running))。USE your_database; SHOW TABLES;),确认数据未丢失或损坏。/etc/mysql/conf.d/中的旧配置)和缓存文件(如/var/cache/apt/archives/中的旧包),释放磁盘空间。top、htop、mysqladmin或Prometheus+Grafana。若发现异常(如查询变慢),需检查是否因新版本特性(如默认加密、原子DDL)导致,并调整配置(如innodb_buffer_pool_size)。libmariadbclient-dev版本不匹配),运行sudo apt install -f自动修复依赖关系,或手动安装缺失的依赖包。innodb_buffer_pool_instances重命名为innodb_buffer_pool_chunk_size),升级前检查/etc/mysql/my.cnf中的自定义配置,替换为新版支持的参数。可使用grep -r "旧参数" /etc/mysql/查找并替换。GROUP BY的严格要求),升级前测试应用程序中的SQL语句,避免因语法错误导致查询失败。临时解决方案:设置sql_mode放宽检查(如SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE'),但需长期修复应用代码。