• mysql数据库主从复制


    准备工作:

      Centos7.

       192.168.96.9 master数据库 ;

       192.168.96.10 slave数据库;

    1. master数据库配置
    (1)修改mysql的配置文件 vi /etc/my.cnf
        [mysqld]
        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock
        user=mysql
        port=3306
        
        server-id=1 #服务器id (主从必须不一样)
        log-bin=mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径
        #作为主机的配置
        binlog-do-db=test #要给从机同步的库
        #binlog-do-db=
        binlog-ignore-db=mysql #不给从机同步的库(多个写多行)
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        binlog-ignore-db=sys
        expire_logs_days=7 #自动清理 7 天前的log文件,可根据需要修改
    (2) 重启mysql   service mysqld restart
    (3) 进入mysql客户端,查看bin-log日志是否开启

      mysql> show variables like '%log_bin%';

      

    (4)查看master数据库的server_id状态,默认是0;

         mysql> show variables like '%server_id%';

      

    (5)查看master的状态;

      mysql> show master status;

    (6)master创建一个账号hadoop给slave数据库使用;因为slave到master上去拉取二进制文件的时候其实质也建立了一个jdbc长连接,需要账号密码;

      GRANT REPLICATION SLAVE ON *.* to 'hadoop'@'%' identified by '1328174';

      查看账号是否创建成功;

      mysql> use mysql;

      mysql> select user , authentication_string, host from user;

       

      到此,master配置完毕!!

     2. slave数据库配置

    (1)修改配置文件 vi /etc/my.cnf

        [mysqld]
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      user=mysql
      port=3306
      server-id=10 #服务器id (主从必须不一样)
      log-bin=mysql-bin
      binlog-do-db=test
      #加上以下参数可以避免更新不及时SLAVE重启后导致的主从复制出错。
      read_only = 1
      master_info_repository=TABLE
      relay_log_info_repository=TABLE
      #relay_log_recovery=1 #slave禁止写
      #super_read_only=1 #slave禁止写
     (2) 由于master 和 slave两台虚拟机服务器是克隆的同一台主机,所以我们需要修改auto.cnf文件的server-uuid的值,保证master和slave的mysql实例不一样,如同不修改,主从复制会失败的。查看错误日志如下:

    所以需要修改:vi /var/lib/mysql/auto.cnf

    (3)继续配置slave

           stop slave;

      change master to master_host='192.168.96.9',master_user='hadoop',master_password='1328174',
             master_log_file='mysql-bin.000002',master_log_pos=358; 

        ### mysql-bin.000001,639 这两个值是通过 show MASTER status 查询出来的。

          start slave;

      SHOW SLAVE STATUS;

      

        如果这两个都是Yes,说明主从复制基本成功了!!!

    3. 测试

    往master服务器的表中插入一条数据:

    查看slave服务器中表的状况:

    测试成功。

    日拱一卒无有尽,功不唐捐终入海
  • 相关阅读:
    Android工具
    Android工具-DDMS
    Android ADB
    Windows FILETIME 与UNIX时间的转换
    <转>git,github在windows上的搭建
    国内的 Faas 云服务 -- Serverless 收集
    APICloud终于承认侵权并向DCloud道歉了(2019-11-26),知识产权!
    微信及钉钉等小程序开发的可视化工具
    C#的建造者设计模式(Builder),及Aspnet Core的源代码
    AspNet Core 3 的通用主机学习
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/9715930.html
Copyright © 2020-2023  润新知