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
  • 复制状态:✅ 正常运行

发表回复

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