debian

Debian MySQL数据迁移步骤

小樊
43
2025-07-26 02:08:18
栏目: 云计算

在Debian系统上迁移MySQL数据库是一个涉及多个步骤的过程,需要仔细规划和执行以确保数据的安全和完整性。以下是详细的迁移步骤:

准备工作

  1. 备份源数据库: 使用 mysqldump 命令导出数据库结构和数据。这将创建一个SQL文件,包含了数据库的所有数据和结构。

    mysqldump -u [username] -p[password] [database_name] > [backup_file].sql
    
  2. 安装MySQL客户端和服务器(如果尚未安装):

    sudo apt update
    sudo apt install mysql-client mysql-server
    
  3. 停止MySQL服务: 在迁移过程中,需要停止MySQL服务以确保数据一致性。

    sudo systemctl stop mysql
    

迁移步骤

方法一:使用 mysqldumpmysql 命令行工具

  1. 将备份文件传输到目标服务器: 使用 scp 或其他文件传输工具将备份文件从源服务器传输到目标服务器。

    scp [backup_file].sql [username]@[target_server]:[destination_path]
    
  2. 在目标服务器上恢复数据库: 登录到目标服务器并恢复数据库。

    mysql -u [username] -p[password] [new_database_name] < [backup_file].sql
    
  3. 验证数据完整性: 连接到目标数据库并验证数据是否完整迁移。

    mysql -u [username] -p[password] [new_database_name]
    USE [database_name];
    SHOW TABLES;
    DESCRIBE [table_name];
    

方法二:使用 xtrabackup 进行物理备份和恢复

  1. 安装 Percona XtraBackup(如果尚未安装):

    sudo apt install percona-xtrabackup-24
    
  2. 创建备份: 在源服务器上创建物理备份。

    sudo xtrabackup --backup --target-dir=/path/to/backup --user=root --password=your_password
    
  3. 准备备份: 在目标服务器上准备备份。

    sudo xtrabackup --prepare --target-dir=/path/to/backup
    
  4. 恢复备份: 将备份文件复制到目标服务器并恢复。

    sudo xtrabackup --copy-back --target-dir=/path/to/backup --datadir=/var/lib/mysql
    
  5. 修改文件权限: 确保MySQL用户对数据目录有适当的权限。

    sudo chown -R mysql:mysql /var/lib/mysql
    
  6. 启动MySQL服务

    sudo systemctl start mysql
    

方法三:使用复制进行迁移

  1. 在旧服务器上配置复制: 编辑旧服务器的 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,添加以下内容:

    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = [database_name]
    

    重启MySQL服务:

    sudo systemctl restart mysql
    
  2. 在新服务器上配置复制: 编辑新服务器的 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,添加以下内容:

    server-id = 2
    relay_log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log
    replicate_do_db = [database_name]
    

    重启MySQL服务:

    sudo systemctl restart mysql
    
  3. 在新服务器上创建复制用户

    CREATE USER 'replicator'@'旧服务器IP' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'旧服务器IP';
    FLUSH PRIVILEGES;
    
  4. 获取二进制日志位置

    SHOW MASTER STATUS;
    
  5. 在新服务器上配置复制

    CHANGE MASTER TO MASTER_HOST = '旧服务器IP', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 123;
    START SLAVE;
    
  6. 验证复制状态

    SHOW SLAVE STATUS\G
    

    确保 Slave_IO_RunningSlave_SQL_Running 都是 Yes。

注意事项

在执行任何迁移操作之前,请务必备份所有重要数据,并确保您了解迁移过程中可能遇到的风险。

0
看了该问题的人还看了