在企业运维或开发环境中,随着系统和应用的不断演进,数据库版本的升级和迁移成为不可避免的任务。本文将手把手教你如何在 RockyLinux 系统上安全、高效地完成 数据库迁移与升级,无论你是使用 MySQL 还是 PostgreSQL,都能轻松上手。

一、为什么需要数据库迁移升级?
旧版本的数据库可能存在安全漏洞、性能瓶颈或不再受官方支持。通过 RockyLinux数据库升级,你可以获得:
更好的性能与稳定性 新特性支持(如窗口函数、JSON增强等) 安全补丁与长期维护保障二、准备工作
在开始之前,请确保完成以下步骤:
备份现有数据库:这是最重要的一步! 确认当前数据库版本(MySQL 或 PostgreSQL) 检查目标新版本的兼容性 确保有足够的磁盘空间1. 备份数据库(以 MySQL 为例)
假设你当前使用的是 MySQL 5.7,希望升级到 MySQL 8.0。 注意:MySQL 8.0 引入了新的默认认证插件(caching_sha2_password),旧客户端可能需要更新驱动。 PostgreSQL 推荐使用 完成迁移后,请执行以下验证: 如果一切正常,可删除旧版本软件包以释放空间,并更新监控和备份策略。 通过本教程,你应该已经掌握了在 RockyLinux 上进行 MySQL迁移教程 和 PostgreSQL升级指南 的核心步骤。记住:**永远先备份,再操作!** 本文适用于 RockyLinux 8/9 环境,操作前请在测试环境充分验证。# 使用 mysqldump 备份所有数据库mysqldump -u root -p --all-databases > /backup/mysql_full_backup_$(date +%F).sql# 单独备份某个数据库mysqldump -u root -p your_database_name > /backup/your_db_$(date +%F).sql2. 查看当前版本
# MySQLmysql -V# PostgreSQLpsql --version三、MySQL 数据库迁移升级(RockyLinux 8/9)
1. 添加 MySQL 官方 YUM 仓库
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm2. 停止旧版 MySQL 服务
sudo systemctl stop mysqld3. 安装新版 MySQL 8.0
sudo dnf install -y mysql-server4. 启动并运行升级脚本
sudo systemctl start mysqldsudo mysql_upgrade -u root -p四、PostgreSQL 数据库迁移升级
pg_dump
+ 新实例导入的方式进行迁移,避免就地升级风险。1. 安装新版本 PostgreSQL(例如从 12 升级到 15)
# 添加官方仓库sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装 PostgreSQL 15sudo dnf install -y postgresql15-server2. 初始化新数据库集群
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb3. 导出旧数据并导入新实例
# 切换到 postgres 用户sudo su - postgres# 导出所有数据库pg_dumpall > /backup/pg_full_backup_$(date +%F).sql# 启动新版本 PostgreSQLexitsudo systemctl start postgresql-15# 导入数据到新实例sudo -u postgres psql -p 5432 -f /backup/pg_full_backup_*.sql五、验证与收尾
systemctl status mysqld
或 systemctl status postgresql-15
连接数据库并查询关键表数据 测试应用程序是否能正常连接和操作六、常见问题与建议
权限问题:确保备份文件和新数据库目录有正确属主(mysql 或 postgres) 配置文件差异:新版本可能不兼容旧配置,建议对比 my.cnf 或 postgresql.conf 字符集问题:MySQL 升级时注意 utf8mb4 的设置
