centos

centos mysql数据迁移步骤

小樊
51
2025-09-05 15:47:55
栏目: 云计算

以下是CentOS下MySQL数据迁移的常见方法及步骤:

一、使用mysqldump工具(逻辑迁移)

适用场景:跨服务器迁移、需备份数据

  1. 备份源数据库

    mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql  
    

    (可选:--all-databases备份所有库,或--single-transaction保证一致性)

  2. 传输备份文件

    scp backup.sql [目标服务器用户]@[目标IP]:/目标路径  
    
  3. 恢复数据到目标服务器

    mysql -u [用户名] -p[密码] [目标数据库名] < backup.sql  
    

    (若为压缩文件,需先解压:gunzip backup.sql.gz

  4. 验证数据
    登录目标数据库,检查表结构和数据是否完整。

二、物理复制数据目录(适用于同服务器或高性能场景)

适用场景:同服务器不同路径迁移、需快速同步

  1. 停止MySQL服务

    systemctl stop mysqld  
    
  2. 复制数据目录

    rsync -av /var/lib/mysql/ [目标路径]/  
    

    (需确保目标目录权限正确:chown -R mysql:mysql [目标路径]

  3. 修改配置文件
    编辑/etc/my.cnf,更新datadir指向新路径,重启MySQL。

  4. 验证数据
    检查新路径下的数据文件,登录数据库确认表和数据正常。

三、主从复制(实时同步)

适用场景:实时数据同步、读写分离

  1. 主服务器配置

    • 修改/etc/my.cnf,启用log-binserver-id(唯一ID)。
    • 创建复制用户并授权:
      CREATE USER 'repl'@'从服务器IP' IDENTIFIED BY '密码';  
      GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从服务器IP';  
      
    • 重启MySQL,记录SHOW MASTER STATUS中的FilePosition
  2. 从服务器配置

    • 修改/etc/my.cnf,设置server-id(不同于主服务器)、relay-log
    • 执行CHANGE MASTER TO指定主服务器信息(IP、端口、账号、FilePosition)。
    • 启动复制:START SLAVE;,通过SHOW SLAVE STATUS检查状态(Slave_IO_RunningSlave_SQL_Running应为Yes)。

注意事项

根据需求选择合适方法,逻辑迁移适合跨环境,物理迁移适合高性能场景,主从复制适合实时同步需求。

0
看了该问题的人还看了