1.准备工作
服务器系统:Windows Server 2016
数据库:MySQL 5.7.39
IP:172.18.57.241(下面简称241) 172.18.57.242(下面简称242)
先安装好MySQL,最好是统一版本,并且保证IP和端口能互相访问
2.修改配置文件
2.1 241数据库配置
修改my.ini,在[mysqld]中添加:
[mysqld]
# 任意自然数n,只要保证进行集群的MySQL的id不重复即可
server_id = 1
# 开启二进制日志
## binlog日志的基本文件名
log_bin = mysql-bin
## binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
log_bin_index = mysql-bin.index
## 中继日志的基本文件名
relay_log = mysql-relay-bin
## 中继日志文件的索引文件,这个文件管理了所有的中继日志文件的目录
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
# 步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment = 2
# 起始值。一般填第n台主MySQL。此时为第一台主MySQL
auto_increment_offset = 1
# 忽略mysql库
binlog_ignore_db = mysql
# 忽略information_schema库
binlog_ignore_db = information_schema
slave_skip_errors = all
2.2 242数据库配置
修改my.ini,在[mysqld]中添加:
[mysqld]
# 任意自然数n,只要保证进行集群的MySQL的id不重复即可
server_id = 2
# 开启二进制日志
## binlog日志的基本文件名
log_bin = mysql-bin
## binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
log_bin_index = mysql-bin.index
## 中继日志的基本文件名
relay_log = mysql-relay-bin
## 中继日志文件的索引文件,这个文件管理了所有的中继日志文件的目录
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
# 步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment = 2
# 起始值。一般填第n台主MySQL。此时为第二台主MySQL
auto_increment_offset = 2
# 忽略mysql库
binlog_ignore_db = mysql
# 忽略information_schema库
binlog_ignore_db = information_schema
slave_skip_errors = all
配置修改后重启MySQL服务:
net stop mysql
net start mysql
3.设置远程访问
分别登录两个数据库中执行:
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Jt123456' WITH GRANT OPTION;
4.开启同步
4.1 查看241日志详情
登录241数据库,查看的日志存放位置:
show master status;
可以看到,日志存放在mysql-bin.000001中
4.2 在242上开启同步
登录242数据库,执行:
change master to master_host='172.18.57.241',
master_user='root',
master_password='Jt123456',
master_log_file='mysql-bin.000001',
master_log_pos=154;
开启slave,查看slave状态:
start slave;
show slave status\G;
4.3 测试
在241中新建一个数据库,并添加表和数据,再查看242的变化。
可以发现数据是同步了的,目前形成的是241为主,242为从的状态。
4.4 在241上配置同步
按照4.1的方式查询242的日志详情;
按照4.2的方式在241上配置同步;
然后分别在两台数据库中测试改变数据,查看同步是否正常。