Mysql5.7.20主从配置

安装完成两个Mysql,版本都是5.7.20,这里为版本不同引起意想不到的问题,主从安装同一个版本的数据库

主库的IP: 10.36.11.223

从库的IP: 10.36.11.201

首先在主库(10.36.11.223)上执行:

1.创建用户 并赋予哪台服务器可以访问

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*  TO cz@10.36.11.201  IDENTIFIED BY 'cz123456!';

--------cz 用户名称,-----cz123456! 用户密码,------10.36.11.201能访问主库的服务器IP地址

2.配置主库

windows在my.ini配置文件中[mysqld]下添加配置/liunx系统在/etc/my.cnf
我的配置如下:
server-id=8000
log_bin=E:\Mywork\Data\mysql-5.7.20-winx64\data 
那个server-id在数据库配置中必须是唯一的,重启主库的mysql


3.配置从库

windows在my.ini配置文件中[mysqld]下添加配置/liunx系统在/etc/my.cnf

我的配置如下:

server-id=8001

replicate-do-db=test  #要同步的数据库 

重启从库的mysql, 在主库执行sql:show master status; 


从库mysql命令下执行

change master to master_host='10.36.11.201', master_user='cz', master_password='cz123456!',master_log_file='data.000005',master_log_pos=154;

这里的master_log_file 和msater_log_pos的值都来自于刚刚主库的这条sql:show master status

4.启动主从复制


start slave; 


5.检查环境是否配置成功


执行 show slave status \G 


Slave_IO_Running: Yes和Slave_SQL_Running: Yes都为yes代表成功了。, 
测试主从复制是否好使,在主库执行insert,update,等sql 

到这里,全部库的主从配置就完成了,实际应用中可能会用到单个表的同步,或者部分表的同步,只需要在主库的/etc/my.cnf或者my.ini里加上
只复制某个表replicate-do-table=tablename 
只复制某些表(可用匹配符)replicate-wild-do-table=tablename% 
只复制某个库replicate-do-db=dbname 
只复制某些库replicte-wild-do-db=dbname% 
不复制某个表replicate-ignore-table=tablename


猜你喜欢

转载自blog.csdn.net/ArnoBM/article/details/79093108