windows环境之mysql主从复制和主主复制

一、前置条件
你需要两个相互不关联但是支持远程操作的数据库,可以将phpstudyde mysql复制一份出来或者,因为数据库的端口号都为3306,所以会出现占用端口的现象。
1.修改端口号:找到mysql的配置文件mysql.ini,修改只需两个mysql服务占用的端口号不一致即可
在这里插入图片描述
修改后重启即可:net stop mysql在cmd窗口开启mysql窗口
二、开始主从配置
找到主数据库的配置文件my.cnf(或者my.ini),一般情况下在mysql的安装目录,在[mysqld]部分插入如下两行:
server_id = 1 #唯一 ,要与备机的不同
log-bin= mysql-bin #开启二进制日
重启主机服务
在主数据库进行以下操作
1.GRANT replication slave ON . TO ‘使用名’@’%’ IDENTIFIED BY ‘密码’; #创建用户并赋予权限
2.flush privileges; #刷新权限
3.mysql >show master status;#查看master状态
记住file的值和position的值。到此没有出错的话,主从配置在主数据库的操作就完成了,下面开始进行从数据库操作
从数据库配置
找到备机数据库的配置文件my.cnf(或者my.ini),一般情况下在mysql的安装目录,在[mysqld]部分插入如下两行:
server_id = 2#唯一 ,要与主机的不同
log-bin= mysql-bin #开启二进制日志
在从数据库进行以下操作
1.CHANGE MASTER TO
MASTER_HOST=‘主机ip’,
MASTER_USER=‘主数据库创建的名称’,
MASTER_PASSWORD=‘密码’,
MASTER_LOG_FILE=‘主数据库执行后的结果’,
MASTER_LOG_POS=主数据库执行后的结果;
(如果报错1198)说明服务正在进行,需要停止:stop slave;解决
然后执行:start slave; #开启slave同步进程
查看状态:show slave status\G; #查看slave状态
在这里插入图片描述
到此主从配置完成开在主数据库进行修改,在从数据库查看测试。
注意:两个服务器的ip需要在同一个网段当中
三、主主配置
1、两台主机的主主配置相当于两个主从配置。在上方例子的基础上进行配置。
原主库 配置文件中加入:
replicate-do-db=test #你要互主的数据库
auto-increment-offset=1
auto-increment-increment=2

原从库 配置文件中加入:
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 :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要。

如果为多主的话注意设置 auto-increment-offset 和 auto-increment-increment
如上面为双主的设置:
服务器 152 自增列显示为:1,3,5,7,……(offset=1,increment=2)
服务器 153 自增列显示为:2,4,6,8,……(offset=2,increment=2)

2、在原从库中进行操作:
1.GRANT replication slave ON . TO ‘使用名’@’%’ IDENTIFIED BY ‘密码’; #创建用户并赋予权限

2.flush privileges; #刷新权限

3.mysql >show master status;#查看master状态
记住file的值和position的值。

3在原数据库执行

1.CHANGE MASTER TO
MASTER_HOST=‘从机ip’,
MASTER_USER=‘从数据库创建的名称’,
MASTER_PASSWORD=‘密码’,
MASTER_LOG_FILE=‘从数据库执行后的结果’,
MASTER_LOG_POS=从数据库执行后的结果;

(如果报错1198)说明服务正在进行,需要停止:stop slave;解决
然后执行:start slave; #开启slave同步进程
查看状态:show slave status\G; #查看slave状态
在这里插入图片描述
到此主从、主主复制配置完成,
有错误欢迎指正,高抬贵手点个赞!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值