首页主机资讯Ubuntu MySQL复制功能怎样配置

Ubuntu MySQL复制功能怎样配置

时间2025-12-18 08:07:06发布访客分类主机资讯浏览1325
导读:Ubuntu 上配置 MySQL 主从复制 一 环境准备与安装 准备两台 Ubuntu 服务器,分别作为主库 Master与从库 Slave,安装相同版本的 MySQL(示例使用 APT 安装)。 建议通过内网通信,开放 3306 端口,...

Ubuntu 上配置 MySQL 主从复制

一 环境准备与安装

  • 准备两台 Ubuntu 服务器,分别作为主库 Master从库 Slave,安装相同版本的 MySQL(示例使用 APT 安装)。
  • 建议通过内网通信,开放 3306 端口,并保障时间同步(如 NTP)。
  • 安装命令:
    • sudo apt update
    • sudo apt install mysql-server
    • sudo systemctl status mysql
  • 以上步骤完成后,两台机器均可正常登录 MySQL。

二 主库 Master 配置

  • 编辑配置文件(常见路径:/etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf),在 [mysqld] 段添加:
    • server-id = 1
    • log_bin = /var/log/mysql/mysql-bin.log
    • binlog_do_db = your_database_name(可选:仅复制指定库;不配置则复制全部库)
  • 重启生效:sudo systemctl restart mysql
  • 登录 MySQL 创建复制专用账号并授权:
    • CREATE USER ‘replicator’@‘%’ IDENTIFIED BY ‘your_password’;
    • GRANT REPLICATION SLAVE ON . TO ‘replicator’@‘%’;
    • FLUSH PRIVILEGES;
  • 获取二进制日志位点(用于从库接入):
    • SHOW MASTER STATUS; 记录 FilePosition(如:mysql-bin.000001、123)。

三 从库 Slave 配置与接入

  • 编辑配置文件,在 [mysqld] 段添加:
    • server-id = 2(必须唯一)
    • relay_log = /var/log/mysql/mysql-relay-bin.log
    • log_bin = /var/log/mysql/mysql-bin.log(可选:若从库也需级联复制)
    • binlog_do_db = your_database_name(与主库保持一致,若主库配置了)
    • read_only = 1(建议开启,防止误写)
  • 重启生效:sudo systemctl restart mysql
  • 登录 MySQL,接入主库:
    • CHANGE MASTER TO
      • MASTER_HOST=‘master_ip’,
      • MASTER_USER=‘replicator’,
      • MASTER_PASSWORD=‘your_password’,
      • MASTER_LOG_FILE=‘记录的File’,
      • MASTER_LOG_POS=记录的Position;
    • START SLAVE;
  • 检查复制状态:SHOW SLAVE STATUS\G,确保 Slave_IO_RunningSlave_SQL_Running 均为 Yes

四 初始化数据与一致性保障

  • 若主库已有数据,需在备份期间保持一致性:
    • 在主库执行:FLUSH TABLES WITH READ LOCK;
    • 记录位点:SHOW MASTER STATUS;
    • 备份数据(示例):mysqldump -u root -p --all-databases --master-data > dbname.sql
    • 解锁:UNLOCK TABLES;
  • 将备份导入从库:mysql -u root -p < dbname.sql
  • 若主库不允许停机,可使用 Percona XtraBackup 进行在线物理备份与恢复,再启动复制。

五 验证与常见扩展

  • 验证:在主库写入数据(如 CREATE DATABASE/TABLE/INSERT),在从库查询确认同步到位。
  • 扩展:
    • 级联复制:从库开启 log_bin 后可作为上游主库继续向下游复制。
    • 主主复制:两台服务器互为主从,并配置自增偏移避免冲突:
      • auto_increment_increment = 2
      • auto_increment_offset = 1(另一台设为 2)
    • 安全与性能:限制复制账号来源网段、启用 SSL/TLS 加密传输、监控复制延迟与错误日志。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MySQL复制功能怎样配置
本文地址: https://pptw.com/jishu/774715.html
Ubuntu上如何进行网站备份 Ubuntu MySQL遇到问题怎么快速定位

游客 回复需填写必要信息