window环境下mysql主从复制

目前很多电商在使用mysql作为存储数据的载体,很多时候频繁查询数据库会有一些性能瓶颈,这时,采用mysql集群是一个好的选择,今天记录下关于mysql的主从复制问题。


我的mysql版本是5.6.37(root,123456),系统环境windows10,由于是在自己机器上搭建的,所以IP统一设置成127.0.0.1,如果是搭建在真实环境下的话,IP换成真是IP即可。

【windows下安装多个mysq服务】

1.下载mysql5.6.37压缩包;

2.解压缩,放到某个盘下(我放在  D:\API\mysql5.6.37 , D:\API\mysql5.6.37.2),这里放了两个文件夹,前者做主库,负责读写,后者作为从库,只负责读取数据;

3.编辑主库的my.ini文件(将my-default.ini改名为my.ini),编辑内容如下:

[mysqld]

basedir = D:\API\mysql5.6.37
datadir = D:\API\mysql5.6.37\data
port = 3306

server_id = 1
log_bin = mysql-bin
binlog-do-db = sampledb

4.编辑从库的my.ini文件(将my-default.ini改名为my.ini),编辑内容如下:

[client]

port=3307
default-character-set=utf8

[mysqld]

basedir = D:\API\mysql5.6.37.2
datadir = D:\API\mysql5.6.37.2\data
port = 3307
server_id = 2
replicate-do-db = sampledb

character_set_server=utf8
default-storage-engine=MYISAM


5.注册主库mysql服务,以管理员身份运行cmd.exe,进入到 D:\API\mysql5.6.37 \bin目录下,mysqld  -install MYSQL;

6.注册从库mysql服务,以管理员身份运行cmd.exe,进入到 D:\API\mysql5.6.37.2 \bin目录下,mysqld  -install MYSQL3307,注册从库成功后需要修改ImagePath,

HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services
找到刚才创建的MySQL2,将ImagePath修改成如下":
"D:\API\mysql5.6.37.2 \bin\mysqld" MySQL3307

【主从数据库下操作】

1.以管理员身份运行cmd.exe,进入主库的bin目录下,mysql -u root -p 123456,回车,grant replication slave,reload,super,create,select,insert,update,delete on *.* to dog@'127.0.0.1' Identified by "123";创建dog用户,密码123,并且给予主从复制权限和其他权限,show master status;查看日志的情况(后面从库开始同步需要用到);

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |      665 | sampledb     |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


2.以管理员身份运行cmd.exe,进入从库的bin目录下,mysql -u root -p 123456,回车(如果没有密码的话,建议更改下密码,安全,模拟真实场景嘛),

change master to master_host='127.0.0.1',master_user='dog',master_password='123', master_log_file='mysql-bin.000010',master_log_pos=665;

设置完之后,执行 mysql> start slave;

开启slave线程;执行mysql> show slave status\G


关注

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

都是YES,表示成功


此时,可用navicate工具链接dog用户和从库的root用户,在dog用户下已有数据库sampledb下创建表,然后插入记录,可在从库的root下看到同步过去了

注意:最好是先用主库和从库root用户创建好需要的数据库,然后在主库下show master status记录日志的位置,再在从库下设置同步开始,生产上一般也是给你创建,删除,更新操作权限,很少给建库权限的,至此主从同步完成






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值