MySQL8主从配置

最近在看MySQL的主从配置,罗列一下过程。

一、环境介绍

  我使用的是两个MySQL8.0.13Windows版,Master和Slave安装的在一个机器上,Master库的端口为3306,Slave库的端口为3308。

二、简单原理

  如下图,Master库会将数据更新写入二进制日志(log-bin)中。Slave库会有一个I/O线程读取二进制日志并写入自己的relay日志中。同时Slave库会有一个读取、处理SQL的线程,将relay日志中的SQL更新到Slave库中。

  

三、配置过程

  1.首先需要安装两个MySQL数据库,个人在使用过程中,碰到一个坑。一天电脑上使用命令行连接的时候,一定要指定端口,如:mysql -u root -p -P3308。2

  2.在所选择的Master数据库中配置(my.ini/my.cnf):

  server_id = 1

  #打开二进制日志
  log-bin = master-bin 
  log-bin-index = master-bin.index

  3.在master库中创建供slave库连接的用户,并授权。

  //127.0.0.1是Slave设备的地址,123456是用户密码。

      //如果主从数据库不在一个服务器上,假如配置成192.168.0.%,这里%表示通配符,代表192.168.0.0-192.168.0.255的Slave库都可以repl用户登录Master服务器。

  create user 'repl'@'127.0.0.1' identified by '123456' ;
  //配置slave库的地址,slave库以用户repl访问时赋予的权限REPLICATION SLAVE  
  GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1';

  4.在slave数据库中配置(my.cnf/my.ini):

  server_id = 2
  relay-log = slave-relay-bin
  relay-log-index = slave-relay-bin.index

  5.在slave库中配置连接的master库的地址、端口、口令、master日志文件等。

  change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='123456',master_log_file='master-bin.000001',master_log_pos=0;

猜你喜欢

转载自www.cnblogs.com/GrapefruitTea/p/10231133.html