• mysql主从复制


     参考MySQL入门04-MySQL主从配置

     主节点:win10,mysql5.7.15

      1,关闭防火墙或设置防火墙规则(否则从节点无法连接主节点,导致Slave_IO_Running: No):

    我使用了设置一条入站规则

    然后设置该‘3306端口’这条规则的作用域

    或者直接关闭防火墙,之后就可以让从节点mysql远程连接到主节点了

      2,主节点授权同步用户

    官方文档是分两步进行的:

    mysql> CREATE USER 'repl_user'@'192.168.200.101' IDENTIFIED BY 'test111111';
    mysql> GRANT REPLICATION SLAVE ON . TO 'repl_user'@'192.168.200.101';

    实际上一条命令即可:

    grant replication slave on *.* to 'repl_user'@'192.168.200.101' identified by 'test111111';

      3,主节点master规则设置

    在my.ini中设置相关规则如下:这些主从复制规则需要在[mysqld]下编写

    #主服务器的配置
    #开启二进制日志
    log-bin=master-bin
    #为服务器添加唯一的编号
    server-id=1
    #只把shopping数据库的数据进行主从复制,可以设置多行
    binlog-do-db=shopping
    #忽略mysql数据库的操作(不对这个数据库进行主从备份,一般是系统数据库),可以设置多行
    #binlog-ignore-db=mysql
    #binlog-ignore-db=information_schema
    #binlog-ignore-db=performance_schema
    #binlog-ignore-db=sys
    #下面两行用户在双主(多主循环)互相备份,表的主键自动增长问题。防止主键冲突
    #auto-increment-increment=10
    #auto-increment-offset=1

     重启mysql

    至此,master配置完成,

    从节点:ubuntu16.10,mysql5.7.17

    注:网上都说 从节点mysql版本要大于等于主节点mysql版本

      1,ubuntu16.10上安装mysql5.7.17

    参考Ubuntu安装MySQL5.7.10,步骤是一样的

        (1)、首先到官网下载ubuntu版本的mysql

    由于ubuntu是64位的,所以我下载的是这个包:mysql-server_5.7.17-1ubuntu16.10_amd64.deb-bundle.tar

        (2)、然后将包解压到某个文件夹下面:

    我就直接解压到当前文件夹下,里面包含如下文件(tar -zxvf mysql.................)

        (3)、安装deb文件

    sudo dpkg -i XXXX,安装过程中注意安装顺序,如果顺序错了,会有提示信息提示具体需要先安装那些东西的。

    1. mysql-common 

    2. libmysqlclient20

    3. libmysqlclient-dev

    4.libmysqld-dev

    5. mysql-community-client

    6. mysql-client

    7. mysql-community-source

    8. mysql-community-server

    只需要将这8个包安装就可以了

    其中在安装mysql-community-server时需要libmecab2_0.996-1.3_amd64.deb(注意提示信息中需要的最低版本)

    下载地址http://packages.ubuntu.com/yakkety/libmecab2

        (4)、前三步没有问题,则安装成功

    /etc/init.d/mysql start 启动mysql

    /etc/init.d/mysql stop 关闭mysql

      2,配置从节点slave规则

    打开mysql配置文件:/etc/mysql/my.cnf,我的配置如下

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    server-id=3
    replicate-do-db=shopping

    需要设置唯一的id号,备份的数据库名称

     开启主从复制

      1,获取当前主节点的状态

    主节点上锁:

    mysql> FLUSH TABLES WITH READ LOCK;

    主节点查看状态:

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

      2,从节点配置并启动同步。查看状态

    如果一开始配置了slave需要执行下面两句话

    stop slave;
    reset slave;

    然后配置slave

    change master to 
    master_host='192.168.200.115',
    master_user='repl_user',
    master_password='test123456',
    master_port=3306,
    master_log_file='master-bin.000002',
    master_log_pos=447;

    可以看到,这个配置中的用户为刚开始在master中创建的用于备份的用户。

    然后启动slave

    start slave;

    查看从节点的状态

    mysql> show slave status G;

    其中的如下两个结果都为Yes,表示成功。

      3,主节点解锁并进行插入操作验证是否正常同步

    主节点解锁:

    mysql> UNLOCK TABLES;

    主节点shopping数据库下的某个表增加一条数据,若从节点也同步增加了这条数据,则可以验证成功

  • 相关阅读:
    绝对定位和浮动的区别和运用
    xhtml css 漏 整理
    网站自适应设备屏幕
    CSS 媒体查询 响应式
    js/jquery判断浏览器 & 停止加载
    回调函数之同步调用、回调、异步调用
    Flash生成HTML5动画方法
    在html页面中使用js变量
    BZOJ 4417 Luogu P3990 [SHOI2013]超级跳马 (DP、矩阵乘法)
    NOI2019游记
  • 原文地址:https://www.cnblogs.com/ljdblog/p/6278582.html
Copyright © 2020-2023  润新知