MySQL 主库 (node1) 到从库 (node2) 数据实时同步
MySQL 主库 (node1) 到从库 (node2) 数据实时同步

MySQL 主库 (node1) 到从库 (node2) 数据实时同步

🚀 在两个 Ubuntu 节点上安装 MySQL 8.0

在node1和node2都执行

#更新源并安装 Mysql
sudo apt update
sudo apt install mysql-server -y

#启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

⚙️ 配置主从复制(node1 为主,node2为从)

1.配置node1

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
#修改/添加:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mysql_ha
binlog_format = ROW
gtid_mode = ON
enforce_gtid_consistency = ON

✅验证配置语法:没有输出代表语法正确

sudo mysqld --validate-config

重启MySQL使配置生效

sudo systemctl restart mysql

🚀 登录到node2服务器

1、编辑MySQL配置文件

    sudo mysql -uroot

    2、执行主库连接

    CHANGE MASTER TO
    MASTER_HOST='192.168.1.103',
    MASTER_USER='repl',
    MASTER_PASSWORD='repl123',
    MASTER_AUTO_POSITION=1;

    登录 node1 MySQL:

    3.1 配置主库连接

    3.1.2 创建复制账号(允许 node2 连接)

    CREATE USER 'repl'@'192.168.210.102' IDENTIFIED BY 'repl123';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.210.102';
    FLUSH PRIVILEGES;
    CHANGE MASTER TO
    MASTER_HOST='192.168.1.103',  -- 替换为 node-1 的 IP
    MASTER_USER='repl',
    MASTER_PASSWORD='repl123',
    MASTER_AUTO_POSITION=1;

    4、启动复制

    START SLAVE;

    5、验证状态

    SHOW SLAVE STATUS\G

      显示 node1 数据库已经存在 在去node2看看

      在node2执行

      SHOW DATABASES;

      🎯 最终结论

      • 主从复制配置 完全成功
      • 主库的写操作已经正常同步到从库
      • 报错只是因为重复创建已存在的数据库,属于正常现象
      • node1(主库)192.168.1.103
      • node2(从库)192.168.210.102
      • 复制状态:✅ 正常运行

      发表回复

      您的邮箱地址不会被公开。 必填项已用 * 标注