*************************************************耐心点,这个方法可以成功*****************************************************
一,下载mysql(mysql官网下载,我使用的是安装版的mysql,版本为8.0.13)。
二,在两台windows上分别安装mysql,安装教程自行百度。
三,定义主数据库和从数据库(这个随意,我用两台电脑,ip分别为:192.168.0.163(从)和192.168.0.213(主))
四,主数据库的配置:
① 在主数据库里创建数据库
mysql> create database db1;
② 找到my.ini (我的my.ini在C:\ProgramData\MySQL\MySQL Server 8.0\my.ini);
③ 打开my.ini,找到 server-id=1,然后在下面添加
log-bin=mysql-bin ## 开启二进制日志
binlog-do-db=db1 ## 要主从的数据库
binlog-ignore-db=mysql ## 不需要主从的数据库
④ 重启mysql(方法A:在服务里重启,方法B:C:\Users\Administrator> net start mysql80 [回车])
⑤ 创建用于主从的用户
mysql> create user mstest@192.168.0.163 identified by '123456'; (用于在从数据库登录的账号)
mysql> grant REPLICATION SLAVE on *.* to mstest@'192.168.0.163';
⑥ 查询用于同步的二进制文件和位置
mysql> show master status \G
**********************1.row*******************
File: mysql-bin.000003
Position: 3465
Binlog_Do_DB: db1
⑦ 记住上面的File和Position(五.⑤要用到),需要用于从数据库的配置,以上①②③④⑤⑥都在主数据库完成
五,从数据库的配置:
① 在从数据库里创建数据库
mysql> create database db1;
② 找到my.ini (我的my.ini在C:\ProgramData\MySQL\MySQL Server 8.0\my.ini);
③ 打开my.ini,找到 server-id=1,并改为2,也就是(server-id=2)然后在下面添加
log-bin=mysql-bin ## 开启二进制日志
replicate-do-db=db1 ## 被主从的数据库
④ 重启mysql(方法A:在服务里重启,方法B:C:\Users\Administrator> net start mysql80 [回车])
⑤ 在从数据库设置参数,一定要保证数据和主数据库的一致性,尤其master_log_file和master_log_pos
mysql> change master to master_host='192.168.0.213', master_user='mstest', master_password='123456', master_log_file='mysql-bin.000003',master_log_pos=3465;
⑥ 查看是否设置成功
mysql> start slave; ##开启
mysql> show slave status \G
********************1.row********************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
⑦ 出现Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说明配置成功
六,测试结果
A:登录数据库并在主数据库db1创建表和添加数据
mysql> use db1;
create table user(id int);
insert into user values(1);
select * from user \G
*********************1.row*******************
id: 1
B:打开从数据库并在从数据库查询主数据库添加的数据
mysql> use db1;
show tables;
select * from user \G
*********************1.row*******************
id: 1