centos

centos mysql数据库迁移技巧

小樊
44
2025-08-14 13:12:59
栏目: 云计算

以下是CentOS下MySQL数据库迁移的常用技巧及方法:

一、逻辑备份与恢复(推荐中小型数据库)

  1. 使用mysqldump工具

    • 备份源数据库
      mysqldump -u 用户名 -p密码 数据库名 > backup.sql
      (支持--single-transaction参数避免锁表,适用于InnoDB)
    • 传输备份文件
      通过scprsyncbackup.sql传输至目标服务器。
    • 恢复数据库
      mysql -u 用户名 -p密码 数据库名 < backup.sql
  2. 使用mydumper(高性能逻辑备份)

    • 支持并行备份,适合大数据库,需先安装工具。
    • 备份命令:mydumper -u 用户名 -p密码 -B 数据库名 -o /备份路径
    • 恢复命令:myloader -u 用户名 -p密码 -d /备份路径

二、物理迁移(适合大型数据库或高可用场景)

  1. 直接复制数据目录(需停机)

    • 停止MySQL服务:systemctl stop mysqld
    • 复制数据目录:cp -r /var/lib/mysql /新路径/,修改权限为chown -R mysql:mysql /新路径/mysql
    • 修改配置文件/etc/my.cnf中的datadir路径,重启服务。
  2. 使用Percona XtraBackup(推荐InnoDB)

    • 备份
      xtrabackup --backup --user=root --password=密码 --target-dir=/backup路径
    • 传输备份:通过scp复制备份文件至目标服务器。
    • 恢复
      xtrabackup --prepare --target-dir=/backup路径
      xtrabackup --copy-back --target-dir=/backup路径 --datadir=/var/lib/mysql
    • 权限与重启chown -R mysql:mysql /var/lib/mysqlsystemctl restart mysqld

三、主从复制迁移(适合零停机场景)

  1. 配置主从同步
    • 源服务器(主库)修改my.cnf,开启log-binserver-id,重启服务。
    • 目标服务器(从库)配置my.cnf,设置server-idrelay-log,重启服务。
    • 在主库创建复制用户:
      CREATE USER 'repl_user'@'%' IDENTIFIED BY '密码'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
    • 在从库执行:
      CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4;
      START SLAVE;
    • 验证状态:SHOW SLAVE STATUS\G,确认Slave_IO_RunningSlave_SQL_RunningYes

四、注意事项

参考来源:

0
看了该问题的人还看了