windows下实现mysql的主从复制

在虚拟机中模拟
master数据库IP为192.168.66.135
slave数据库IP为 192.168.66.134
两台服务器数据库版本相同
网络互相ping通,数据库端口3306通过防火墙开放
用户需要赋予replication slave权限

mysql> grant replication slave on *.* to 'admin'@'192.168.66.135' identified by '123456';
mysql> flush privileges;

我这里直接用root账户所以没使用这条命令

在主数据库mysql目录下找到my.ini 在最后行加上

server-id=1
log-bin=binlog
sync_binlog=1
binlog_format=row
auto_increment_increment = 1
auto_increment_offset = 1 
binlog_do_db=你要同步的数据库
replicate_do_db=你要同步的数据库

在从数据库mysql目录找到my.ini最后行加上

server-id=2
log-bin=binlog
sync_binlog=1
binlog_format=row
binlog_do_db=你要同步的数据库
replicate_do_db=你要同步的数据库

启动主数据库

C:\Windows\system32>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
C:\Windows\system32>mysql -u root -p
Enter password: ******

查看master状态

mysql> show master status\G;
*************************** 1. row ***************************
             File: binlog.000006
         Position: 154
     Binlog_Do_DB: 你同步的数据库
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

记下这个binlog.000006 和position 154,我这边重启过几次所以数字比较大

同上启动slave的数据库并进入然后先关闭slave,使用change master to 指定同步master库的相关信息。然后启动slave,查看slave的状态,出来一大串信息,主要看 Slave_IO_Running和Slave_SQL_Running 状态是否是Yes。如果都是yes那就成功了,在主数据库随便建一张表,然后去从库看是否自动生成了表。
注意从库数据只能进行查看操作,进行修改等操作会导致主从复制失败,需要重新使用change master to 语句,要先去主库查看Position的值在进行同步操作。

mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
mysql> change master to master_host='192.168.66.135',master_user='root',master_password='123456', master_log_file='binlog.000005',master_log_pos=154;
mysql> start slave;
mysql> show slave status\G;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值