Windows 下 Mysql 主从,主主 同步数据

一. 找到mysql 的配置文件 my.ini
mysql 的安装位置下面 一般默认位置是(C:\Program Files (x86)\MySQL\MySQL Server 5.5)
二. Mysql 主从配置
主(23.152.6.53) , 从(23.152.6.57)
① 在 my.ini 文件 内 [mysqld] 加入
主 (23.152.6.53)
server_id = 1 #唯一 ,要与备机的不同
log-bin= mysql-bin #开启二进制日志  
binglog-do-db = test
# 或者可以写 "C:\Program Files (x86)\MySQL\MySQL Server 5.5\mysql-bin ";
从 (23.152.6.57)
server_id = 2  #唯一 ,要与备机的不同
log-bin= mysql-bin #开启二进制日志  
# 或者可以写 "C:\Program Files (x86)\MySQL\MySQL Server 5.5\mysql-bin ";

ex:
在这里插入图片描述

配置完成之后 重启 俩台机器的服务. 会在 安装目录下出现一个 mysql-bin.00000x 文件
② 在主(53) 下进行下列操作
CREATE USER '使用名'@'备机IP地址' IDENTIFIED BY '密码';#创建用户
ex: create user 'bfk' @23.152.6.57  identified by '123456';

GRANT REPLICATION SLAVE ON *.* TO '使用名'@'备机IP地址';#分配权限
ex: grant replication slave on *.* to 'bfk' @ '23.152.6.57'

然后刷新权限
flush privileges; 
PS: 如果想进行主主的 那么就在 从(57) 里面 也进行 ②的操作
③建好用户之后 show master status ; # 查看主的状态;
ex: show master status;#查看master状态

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107      | test        |                  |
+------------------+----------+--------------+------------------+

解释一下参数的含义:
File :  二进制日志的文件
Postitrion: 提供连接的POS 参数
Binlog_Do_DB :  需要同步的数据库
Binlog_Ignore_DB : 不需要同步的数据
(这些需不需同步的  都是 可以在 my.ini 文件 设置的 binlog-do_db:  xxx 就是需要  ignore_db  就是不需要) 
其中 File  和 Postition  这俩个参数比较重要, 在下一步会用到
————————————————

④ * 最重要的一步, 连接俩个库
从 从库(57) 注意是从库!!!
执行  change master  to  master_host='23.152.6.53',master_user='bfk'#刚才建的账号#,
master_password='123456',master_log_file='mysq-bin.000001' ,#第三步记下来的那个File#
master_log_pos=107 #第三步记下来的值#
整理 :
Master_Host='主机的IP 地址'
Mastet_USER='主服务器提供出来连接的账号'
Master_Password='密码'
Master_LOG_FILE='二进制日志文件'
Master_LOG_POS='POS值'
成功之后 查看一下状态

mysql>show slave status\G; #查看slave状态
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 23.152.6.53
Master_User: bfk
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 107
Relay_Log_File: mysqld-relay-bin.00001
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:

————————————————

这张图是 主主之后的!!!

在这里插入图片描述

其中只需要注意俩个地方 下面俩个都为YES 那么就成功了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果Slave_IO_Running 为 NO 那么你检查一下 Server_id 主从是不是都设置成一样的了 !!或者(这是我犯过的傻) 第四步 你是在 主库进行的!!
二. Mysql 主主配置
原主库(53)配置文件中加入:
replicate-do-db=test
auto-increment-offset=1
auto-increment-increment=2
 
原从库(57)配置文件中加入:
replicate-do-db=test  # 指定同步的库
auto-increment-offset=2
auto-increment-increment=2
 
 
说明:
log-bin :需要启用二进制日志
server-id : 用于标识不同的数据库服务器
 
binlog-do-db : 需要记录到二进制日志的数据库
binlog-ignore-db : 忽略记录二进制日志的数据库
auto-increment-offset :该服务器自增列的初始值。
auto-increment-increment :该服务器自增列增量。
 
replicate-do-db :指定复制的数据库
replicate-ignore-db :不复制的数据库
relay_log :从库的中继日志,主库日志写到中继日志,中继日志再重做到从库。
log-slave-updates :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要。
这里还提供了一个 交换整个库 都是某些表不交换的设置
replicate-do-db=test
replicate-ignore-table=test.rep_t3
意思为  交换整个 test 库.    但是 rep_t3 库 不进行交换

下面修改,和遇到的坑,持续更新

参考连接: https://blog.csdn.net/wangli1281/article/details/81134476

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值