MySQL 8 主从复制的具体实现步骤如下

  1. 配置主服务器:

    • 编辑主服务器的 MySQL 配置文件(通常是 my.cnf 文件),确保以下参数正确配置:

      server_id = 1 # 主服务器的唯一标识符,每台服务器要唯一
      log_bin = mysql-bin # 启用二进制日志,设置日志文件名
      binlog_format = ROW # 选择 ROW 模式,更高效的复制

      创建日志目录:mkdir -p mysql-bin

      chown -R mysql:mysql mysql-bin

      chmod -R 755 mysql-bin

    • 重启 MySQL 服务器使配置生效。

      systemctl restart mysqld

  2. 创建复制账户:

    • 在主服务器上创建一个用于复制的账户,并授予复制权限。示例 SQL 语句如下:
      CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
    • 记录复制账户的用户名和密码,后续从服务器需要使用。
  3. 备份数据:

    • 在主服务器上执行数据库备份,可以使用 mysqldump 工具。
       
      mysqldump -u username -p database_name > backup.sql
  4. 配置从服务器:

    • 编辑从服务器的 MySQL 配置文件,同样是 my.cnf 文件,设置以下参数:

      relay-log = /var/log/mysql/relay-bin

      server_id = 2 # 从服务器的唯一标识符,每台服务器要唯一

      创建日志目录:mkdir -p  /var/log/mysql/

      chown -R mysql:mysql /var/log/mysql/

      chmod -R 755 /var/log/mysql/

      重启服务器 systemctl restart mysqld

    • 导入主服务器的数据库备份到从服务器中。
       
      mysql -u username -p database_name < backup.sql
  5. 连接主从服务器:

    • 在从服务器上启动 MySQL 并连接到 MySQL 控制台。
    • 执行以下 SQL 命令,连接到主服务器并开始复制:
       
      CHANGE MASTER TO MASTER_HOST='master_ip',
      MASTER_USER='repl_user',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='mysql-bin.000001', -- 主服务器的二进制日志文件名
      MASTER_LOG_POS=1234; -- 主服务器的二进制日志位置
      其中,master_ip 是主服务器的 IP 地址,mysql-bin.000001 是主服务器的二进制日志文件名,1234 是主服务器的二进制日志位置。
  6. 启动复制:

    • 在从服务器上执行 START SLAVE; 命令,启动从服务器的复制进程。
  7. 检查复制状态:

    • 在从服务器上执行 SHOW SLAVE STATUS\G; 命令,查看复制状态,确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes,表示复制正常运行。
    •  

完成以上步骤后,MySQL 8 的主从复制就可以正常工作了。需要注意的是,确保主从服务器的配置信息正确,网络连接畅通,以及定期监控复制状态,确保复制过程稳定可靠

posted @ 2024-03-29 11:07  jack_ou  阅读(118)  评论(0编辑  收藏  举报