• MySql5.5以上版本设置主从结构的例子


    为了实现读写分离,一般都需要先设置好mysql的主从结构,网上现有的mysql配置大都基于低版本,在5.5以上版本无法配置成功,所以参考了官方文档,写了这篇笔记。
    *主要参考Mysql 5.6的官方文档文档
    https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html
     
    备注:设置主从结构的情况下,在修改主库(master)数据的时候会自动同步修改到从库(slave)。
    所以要求初始同步的时候数据一致,如果已有数据的情况下,
    建议先备份主库数据,然后清空主库和从库数据,当主从结构设置完成后,再重新将数据导入到主库。
    #如果要求线上系统不能停机的话,建议参考下面的文档进行不停机的数据同步。
    https://dev.mysql.com/doc/refman/5.6/en/replication-howto-existingdata.html



    下面是操作步骤,假设是两个空数据库,不需要做数据从主库(简称:master)到从库(简称:slave)的热同步
    1.数据同步需要依赖bin格式的日志和每个服务器唯一的serever id,所以要在master机上做如下配置并重启(/etc/mysql/my.cnf,添加到[mysqld]部分)
    log-bin=mysql-bin
    server-id=1
    log-bin=log
    binlog-do-db=dbname#需要同步的数据库名
    binlog-ignore-db=information_schema#忽略同步的数据库名
    binlog-ignore-db=mysql#忽略同步的数据库名

    2.Slave从库也需要设置server id,做如下配置并重启(/etc/mysql/my.cnf,添加到[mysqld]部分)
    [mysqld]
    server-id=2
    replicate-ignore-db=mysql#忽略同步的数据库名
    replicate-ignore-db=information_schema#忽略同步的数据库名
    replicate-do-db=dbname#需要同步的数据库名

    3.在master上使用下面的命令添加用来同步的用户并赋予权限:
    mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '1234';
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
    mysql> flush privileges;


    4.使用命令(SHOW MASTER STATUS;)查看master的情况
    File Position     BinLog_Do_DB     BinLog_Ignore_DB
    log.000009 14002  rtm_bs  information_schema,mysql
      
    #如果这条命令没有出现内容的话,说明master配置有问题

    5.在Slave服务器上执行下面的命令。
    mysql> SLAVE STOP;

    mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.115',#master库的IP
    mysql> MASTER_USER='slave', #master库的登陆用户
    mysql> MASTER_PASSWORD='1234', #master库的登陆用户密码
    mysql> MASTER_LOG_FILE='log.000009', #master库的File部分显示内容
    mysql> MASTER_LOG_POS=14002; #master库的Position部分显示内容

    mysql> START SLAVE;
    #如果显示出Slave的具体信息的话,说明配置成功了。
     
    6.尝试在主库修改数据,正常的话,在从库就能看到数据变化了。
     
    7.一般从库会要求只读,可以创建一个只读的用户slave_user对外提供访问。
    GRANT Select ON *.* TO slave_user@"%"  IDENTIFIED BY "12354";

    或者执行下面的命令将数据库置为只读

    mysql> set global read_only=1;

    当需要将salve库从只读状态变为读写状态,执行下面的命令

    mysql> set global read_only=0;
     
  • 相关阅读:
    八步详解Hibernate的搭建及使用
    Hibernate的介绍
    javascript的优缺点和内置对象
    过滤器有哪些作用?
    JSP中动态INCLUDE与静态INCLUDE的区别?
    jsp的四种范围?
    jsp有哪些动作作用分别是什么?
    介绍在JSP中如何使用JavaBeans?
    jsp有哪些内置对象作用分别是什么 分别有什么方法?
    request.getAttribute() 和 request.getParameter() 有何区别?
  • 原文地址:https://www.cnblogs.com/zhualike/p/4846234.html
Copyright © 2020-2023  润新知