ubuntu

Ubuntu MariaDB数据迁移方案

小樊
48
2025-09-21 06:30:55
栏目: 云计算

Ubuntu环境下MariaDB数据迁移方案

一、迁移前准备

  1. 确认目标环境:确保目标Ubuntu服务器已安装与源数据库兼容的MariaDB版本(可通过sudo apt install mariadb-server安装);若版本跨度较大(如10.2→10.6),建议先在测试环境验证兼容性。
  2. 准备工作:迁移前停止源数据库的写入操作(如暂停应用服务),避免数据不一致;准备足够的磁盘空间存储备份文件。

二、源数据库备份

使用mysqldump工具导出数据,支持全库或单库备份:

三、备份文件传输(跨服务器迁移)

若迁移至另一台Ubuntu服务器,需将备份文件传输至目标服务器。使用scp命令(安全复制):

scp full_backup.sql user@target_server_ip:/path/to/destination

替换user为目标服务器用户名、target_server_ip为目标服务器IP、/path/to/destination为目标路径。

四、目标数据库配置

  1. 安装MariaDB(若未安装):
    sudo apt update && sudo apt install mariadb-server
    
  2. 创建目标数据库
    登录目标服务器的MariaDB,创建与源数据库同名的数据库(可选):
    mysql -u root -p
    CREATE DATABASE mydb;  # 替换为源数据库名
    
  3. 修改数据目录(可选,本地迁移需调整路径时)
    若需更改MariaDB数据存储路径(如从/var/lib/mysql迁移至/new/mysql),编辑配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,修改datadir参数:
    [mysqld]
    datadir = /new/mysql
    
    同步原数据目录至新路径:
    sudo cp -a /var/lib/mysql/* /new/mysql/
    
    修改新目录权限(确保MariaDB用户mysql拥有所有权):
    sudo chown -R mysql:mysql /new/mysql
    
    重启MariaDB服务使配置生效:
    sudo systemctl restart mariadb
    

    注:仅跨服务器迁移无需修改数据目录。

五、数据导入与验证

  1. 导入备份数据
    登录目标服务器,使用mysql命令导入备份文件:
    mysql -u root -p mydb < full_backup.sql  # 替换为目标数据库名和备份文件名
    
  2. 验证数据完整性
    • 登录MariaDB,检查数据库和表是否存在:
      USE mydb;
      SHOW TABLES;
      SELECT COUNT(*) FROM your_table;  # 替换为关键表名,核对记录数
      
    • 检查字符集一致性(避免乱码):
      SHOW VARIABLES LIKE 'character_set%';
      SHOW VARIABLES LIKE 'collation%';
      
      若需调整字符集,可执行:
      ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      
  3. 测试应用连接
    更新应用程序的数据库配置文件(如PHP的config.php、Python的settings.py),将数据库地址、用户名、密码、数据库名修改为目标值,重启应用服务验证连接。

六、迁移后注意事项

  1. 监控性能:迁移后观察MariaDB的CPU、内存、磁盘IO使用情况(通过topiotopmysqladmin status命令),确保性能符合预期。
  2. 备份新数据库:迁移完成后立即对新数据库进行备份,避免数据丢失。
  3. 清理旧数据:确认迁移无误后,删除源服务器上的备份文件和旧数据目录(如/var/lib/mysql),释放磁盘空间。

0
看了该问题的人还看了