温馨提示×

Debian MariaDB数据迁移步骤

小樊
51
2025-10-08 14:45:28
栏目: 云计算

Debian环境下MariaDB数据迁移步骤

一、迁移前准备

  1. 备份源数据库:防止迁移过程中数据丢失,使用mysqldump工具导出源数据库。
    命令示例:mysqldump -u [源数据库用户名] -p[源数据库密码] [源数据库名] > [备份文件名].sql(如mysqldump -uroot -pOldPass mydb > mydb_backup.sql)。
    输入密码后,备份文件将保存在当前目录。
  2. 检查源数据库配置:确认源数据库的字符集(如utf8mb4)、排序规则(如utf8mb4_general_ci)及版本信息(SELECT VERSION();),确保与目标数据库一致。
  3. 准备目标服务器:在Debian系统上安装MariaDB服务器(若未安装):
    sudo apt update sudo apt install mariadb-server -y 
    安装完成后,运行sudo mysql_secure_installation设置root密码及安全选项。

二、迁移数据库文件(物理迁移,适用于全量迁移)

  1. 停止源和目标服务器
    # 源服务器 ssh [源服务器IP] sudo systemctl stop mariadb # 目标服务器 sudo systemctl stop mariadb 
  2. 复制数据目录
    MariaDB默认数据目录为/var/lib/mysql,使用scp或rsync复制:
    scp -r [源服务器IP]:/var/lib/mysql /var/lib/mysql_new 
  3. 修改目标配置文件
    编辑目标服务器的MariaDB配置文件(/etc/mysql/mariadb.conf.d/50-server.cnf),更新datadir路径:
    [mysqld] datadir = /var/lib/mysql_new 
  4. 启动目标服务器并验证
    sudo systemctl start mariadb sudo mysql -u root -p -e "SHOW GLOBAL VARIABLES LIKE '%datadir%';" 
    确认输出的datadir路径为目标目录。

三、导入数据库(逻辑迁移,适用于跨版本或选择性迁移)

  1. 创建目标数据库
    登录目标MariaDB,创建与源数据库同名的数据库:
    sudo mysql -u root -p -e "CREATE DATABASE [目标数据库名];" 
  2. 导入备份文件
    使用mysql命令导入之前导出的SQL文件:
    mysql -u [目标数据库用户名] -p[目标数据库密码] [目标数据库名] < [备份文件名].sql 
    例如:mysql -uroot -pNewPass mydb < mydb_backup.sql

四、迁移后验证

  1. 检查数据完整性
    登录目标数据库,查看表结构和数据是否与源数据库一致:
    USE [目标数据库名]; SHOW TABLES; SELECT COUNT(*) FROM [关键表名]; 
  2. 验证应用程序连接
    更新应用程序的数据库配置文件(如config.php.env),修改数据库主机、用户名、密码及数据库名,重启应用程序服务。

五、清理与优化

  1. 删除临时文件:迁移完成后,删除备份文件或临时数据目录以释放空间。
  2. 更新统计信息:优化目标数据库性能:
    OPTIMIZE TABLE [表名]; -- 对每个表执行优化 
  3. 监控性能:使用mysqltunerpt-query-digest工具分析目标数据库性能,调整配置(如innodb_buffer_pool_size)。

注意事项

  • 字符集一致性:确保源和目标数据库的字符集一致,避免乱码问题。
  • 权限设置:迁移后,检查目标数据库用户的权限(如GRANT语句),确保应用程序有足够访问权限。
  • 停机时间:物理迁移需停机,建议在业务低峰期操作;逻辑迁移可减少停机时间,但需处理大表的导入效率。
  • 版本兼容性:MariaDB不同版本间可能存在语法差异,建议迁移前确认版本兼容性(如MariaDB 10.5与10.10的语法差异)。

0