mysql 5.7 windows 主从_mysql5.7.25主从同步图解(主:CentOS7.5,从win10)

环境说明:

主服务器:CentOS7.5

从服务器:Windows10(本地测试机)

1. 配置master(主服务器,CentOS7.5)

1.1 首先查看CentOS上面的MySQL是否启动

systemctl status mysqld

f48ad9467a5fc712c2db6393cdb73d06.png

1.2 修改MySQL配置文件

vi /etc/my.cnf

添加以下内容:

#服务器唯一id,默认是1(主从都必须不一样)

server-id=1000

#启动二进制日志名称为mysql-bin

log-bin=mysql-bin

#binlog-do-db与binlog-ignore-db互斥,设置其中一个即可

#binlog-do-db=需要同步的数据库名(多个数据库重复设置即可)

binlog-do-db=test01

#binlog-ignore-db=不需要同步的数据库01(多个数据库重复设置即可)

#binlog-ignore-db=不需要同步的数据库02(多个数据库重复设置即可)

#动清理30天之前的log文件(可自由指定时间)

expire_logs_days=30

##启用gtid类型,否则就是普通的复制架构(主从服务器都要配置且相同,要关都关,要开都开)

#gtid_mode=on

###强制gtid的一致性

#enforce_gtid_consistency=1

##当mysql启动或重启时,mysql在搜寻gtid时是如何迭代使用binlog文件的.

##这个选项设置为真,会提升mysql执行恢复的性能.因为这样mysql-server启动和binlog日志清理更快

#binlog_gtid_simple_recovery=1

268b2815423abe6d8722d2efb3474617.png

1.3 重新启动MySQL

systemctl restart mysqld

1.4 创建备份账号与测试log_bin是否成功开启

1.4.1 登录主数据库

mysql -uroot -p

3e17c09f715d4471643458bbf0ca4485.png

1.4.1 创建有复制权限的帐号

主机名可以是"%"、"192.168.0.%"、或者"192.168.1.106"这些格式,“%”为任意IP

mysql> grant replication slave on *.* to '用户名'@'主机' identified by '密码';

如果出现提示权限不足的情况,请按照以下方式操作

dd55ae4c12ff8ffa1562867640230c33.png

修改MySQL密码规则

// 修改密码策略方式为不限制(重启后恢复为默认规则)

mysql> set global validate_password_policy=0;

// 修改密码长度为最少6位(重启后恢复为默认规则)

mysql> set global validate_password_length=6;

4da513a88df345b8b948765d34f526c5.png

重新设置密码(创建成功)

a260dae983ab970c54c7f49879f3a4fb.png

1.4.2 #查看主库的状态

mysql> show master status;

0de5b654cb38ebb28447f91ba7c07223.png

File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到

1.4.3 #查看big-log日志是否开启成功

mysql> show variables like '%log_bin%';

1d129e68357f713216f4bceb698784c9.png

可以看到从 "/etc/my.cnf" 文件中添加的 log-bin=mysql-bin 日志已经启动

此时主库停止操作(为了保持主从数据库数据一致),等待从库连接后, 方可进行其他操作

2. 配置slaver(从服务器,Windows10)

2.1 关闭MySQL服务

使用管理员权限打开CMD,执行以下命令

// 关闭MySQL服务

net stop mysql57_01

96b120814119f858d05536af8096b3bd.png

2.2 修改MySQL配置文件

进入到MySQL的安装目录,编辑 my.ini 文件

1ad51d58f5c583198f2668321b6ec786.png

在[mysqld]下添加以下内容(除了server_id必填,其他选填):

#从库配置

##服务器唯一id,默认是1(主从都必须不一样)

server_id=1001

##从机保存同步中继日志的位置

relay_log=slave-relay-bin

##当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,

##则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性

relay_log_recovery=1

##只读模式(普通用户)

read_only=1

##只读模式(超级管理员)

super_read_only=1

##启用gtid类型,否则就是普通的复制架构(主从服务器都要配置且相同,要关都关,要开都开)

#gtid_mode=on

###强制gtid的一致性

#enforce_gtid_consistency=1

##当mysql启动或重启时,mysql在搜寻gtid时是如何迭代使用binlog文件的.

##这个选项设置为真,会提升mysql执行恢复的性能.因为这样mysql-server启动和binlog日志清理更快

#binlog_gtid_simple_recovery=1

7b81e60320a5f4a4a38188b561e2b0c7.png

完整my.ini 文件内容如下:

[mysqld]

# 设置3307端口

port = 3307

# 设置mysql的安装目录

basedir=D:/Program Files/mysql-5.7.25-winx64

# 设置mysql数据库的数据的存放目录

datadir=D:/Program Files/mysql-5.7.25-winx64/data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认utf8

character-set-server=utf8

# 创建新表时使用的默认存储引擎

default-storage-engine=INNODB

# 设置sql语法模式

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#从库配置

##服务器唯一id,默认是1(主从都必须不一样)

server_id=1001

##从机保存同步中继日志的位置

relay_log=slave-relay-bin

##当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,

##则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性

relay_log_recovery=1

##只读模式(普通用户)

read_only=1

##只读模式(超级管理员)

super_read_only=1

##启用gtid类型,否则就是普通的复制架构(主从服务器都要配置且相同,要关都关,要开都开)

#gtid_mode=on

###强制gtid的一致性

#enforce_gtid_consistency=1

##当mysql启动或重启时,mysql在搜寻gtid时是如何迭代使用binlog文件的.

##这个选项设置为真,会提升mysql执行恢复的性能.因为这样mysql-server启动和binlog日志清理更快

#binlog_gtid_simple_recovery=1

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

2.3 启动MySQL服务

使用管理员权限打开CMD,执行以下命令

// 启动MySQL服务

net start mysql57_01

9e6f137a1c31cddd16a168cf1ff0713c.png

2.4 建立连接

2.4.1 登录mysql,关闭主从同步

// 登录mysql

mysql -u root -p -P3307

// 闭主从同步

mysql> stop slave;

80aff1ac0b43cde83f40b4f177fc1d3a.png

2.4.2 关联主库和从库(操作之时主库停止操作)

change master to

master_host='主库IP地址',

master_port=主库端口,

master_user='主库用户名',

master_password='主库用户密码',

master_log_file='要同步的文件名称',

master_log_pos=要开始同步的位置;

6addd8c68d7c1d8d6473e33c63f487a6.png

注意:

"master_log_file"和主库状态中的【File】内容一致

"master_log_pos"要主库状态中的【Position】内容一致

具体请参照【1.4.2 #查看主库的状态】章节

如果关联发生错误,请检查错误后重置slave,然后重新执行即可

// 关闭主从同步

mysql> stop slave;

// 重置主从同步信息

mysql> reset slave;

4d9b87e371292eb9e72cf5144bffe5ee.png

2.4.3 开启主从同步

mysql> start slave;

f3985ffdd93fea0c942d607fc31c4ddf.png

2.4.4 查看从服务器状态

mysql> show slave status \G;

bf4f87f5644aab922960b33bbdfec04d.png

df548cd683438e75e9bd95ae14dda46b.png

当出现Slave_IO_Running: Connecting的提示时,说明主库和从库没有连接上,一般有三点原因:

1.网络问题:检查网络连接是否能够连接上

2.密码或POS号错误:查看pos号和主库的号是否对应

3.防火墙的问题:查看主库防火墙的策略,数据库是否拒绝外来连接

3. 测试

3.1 主库原始信息

94092802f22e96e1b193d2ed97330f1f.png

test库(不同步)的数据信息

89797a65078161b0937348bd02525b70.png

test01库(同步)的数据信息

36d32ed78806925f6ae6e5e0338840ea.png

3.2 从库原始信息

b59f755f61e07da34e02cc461b2bca2d.png

test库(不同步)的数据信息

89797a65078161b0937348bd02525b70.png

test01库(同步)的数据信息

36d32ed78806925f6ae6e5e0338840ea.png

3.3 主库修改信息

test库(不同步)新增一条信息

c8b305e7eee860474af27b0ce7975360.png

test01库(同步)新增一条信息

d9239cdb71975f25d78306d7ec7cb32b.png

3.4 从库同步的信息

test库(不同步)的数据信息

c39d55b63a7ef54d3283a6ee61a5c0dc.png

test01库(同步)的数据信息

f521d8d8e5f2fc6d8dab2a886f3d6cd1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值