windows server2008 R2主从复制Mysql
第一种配置
Master配置(my.ini)
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\\mysql-8.0.18-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\\mysql-8.0.18-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置master的serverid
server-id=1000
# 要生成的二进制日记文件名称
log-bin=mysql-bin
# 选择row模式
binlog-format=ROW
# 要同步的数据库
binlog-do-db=zr_oa
# 不同步mysql系统数据库
binlog-ignore-db=mysql
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
创建Slave,访问账号
create user 'slave'@'%' identified by '123456';
grant REPLICATION SLAVE,RELOAD,SUPER ON *.* TO slave@'%';
flush privileges;
查看Master状态
show master status
记录File和Position这两个值
Slave配置
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\\mysql-8.0.18-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\\mysql-8.0.18-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# slave数据库ID数据库ID
server-id=2000
# 启动MySQL二进制日志系统
log-bin=mysql-bin
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
在Slave执行
stop slave;
change master to master_host='xxx.xxx.xxx.xxx',master_user='slave',master_password='123456',master_log_file='binlog.000003',master_log_pos=2548442;
start slave;
show slave status;
第二种配置
Master修改my.ini配置文件
在[mysqld]下添加配置(如果有server-id,log-bin就无需重复添加)
#Master Config
#设置唯一的ID编号
server-id = 1
#二进制文件存放路径,默认路径在mysql的data文件夹下
log-bin = mysql-bin
#需要同步的数据库名称,可不写,如果写了就要和Slave上配置保持一致.
binlog-do-db = login
binlog-do-db = log
binlog-do-db = server
#不需要同步的数据库名称,可不写,如果写了就要和Slave上配置保持一致
binlog-ignore-db = mysql
保存,重启mysql服务
创建新用户slave,密码slave,不建议使用root
mysql>grant replication slave,reload,super on *.* to slave@172.16.11.73 identified by '123456';
mysql>flush privileges;
mysql>show master status;
记录File和Position的值
Slave配置my.ini文件
在[mysqld]下添加配置(如果有server-id,log-bin等就不要重复添加)
#Slave Config
#设置唯一的ID编号,不得与主库编号一致
server-id = 2
#二进制文件存放路径,默认路径在mysql的data文件夹下
log-bin = mysql-bin
#需要同步的数据库名称,要和Master上配置保持一致
replicate-do-db = login
replicate-do-db = log
replicate-do-db = server
#不需要同步的数据库名称,可不写,如果写了就要和Master上配置保持一致
replicate-ignore-db = mysql
保存,重启mysql服务.
登陆数据库
mysql>change master to master_host='172.16.11.50',master_user='slave',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=855;
mysql> start slave;
mysql> show slave status\G
其中Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 两项都为Yes,说明配置成功.此时改动主库信息,从库会自动同步,可以自己测试下.