zoukankan      html  css  js  c++  java
  • 双主数据库配置与应用

                                                                      双主数据库

     

    综合实验前提:

    这里介绍双主数据库,可以根据双主数据库来做单循环数据库,配置基本相同

     

    1.双主数据库:

    问题:主键冲突:

    解决方法:等差连接

     

    2.单循环:

    解决主库不够,增加访问量——单循环

    单循环不管是几台。只要坏一台,就只有一台是完整的。

    所以一般双主或者三主就可以了

     

    3.一主库拖8从库

     

     

    双主数据库实验:

    注意:id不能重复

     

    两台mysqlIP地址

    192.168.117.136     192.168.117.137

    show master status;

    show slave statusG;

    【主从数据库】

    1.136主,137

    136配置:

    mysql -u root -p123

    create database lidb;

    use mysql;

    show tables;

    select Host,User,password from user;

    insert into mysql.user(Host,User,Password) values('localhost','backli',password('123'));

    mysql> select Host,User,password from user;

    grant replication slave on *.* to 'backli'@'192.168.117.137' identified by '123';

    flush privileges;

    exit

     

    备份数据库:

    mysqldump -u root -p lidb > lidbbak.sql

     

    将备份数据库传给另一台数据库

    scp lidbbak.sql root@192.168.117.137:/root

     

    编辑配置文件:

    vim /etc/my.cnf

    log-bin=mysql-bin

    # binary logging format - mixed recommended

    添加:

    binlog_format=mixed

    binlog_do_db=lidb

    binlog_ignore_db=mysql

    auto_increment_increment=10

    auto_increment_offset=1

     

    启动服务

    service mysqld restart

     

    137配置另一台:

    1.创建相同的数据库,然后还原数据

    create database lidb;

    source /root/lidbbak.sql

    2.编辑配置文件

    vim /etc/my.cnf

    添加:

    log-bin=mysql-bin

    replicate_do_db=lidb

    replicate_ignore_db=mysql

    log_slave_updates=on

    server-id       = 2

    启动服务

    service mysqld restart

     

    3.首先进入master库,查看二进制日志问价名称和偏移量

    mysql -u root -p123

    show master status;

    4.进入slave数据库,配置连接master的IP地址,数据库用户,密码,日志名称,偏移量编号,设置拉取同步操作

    mysql -u root -p123

    slave stop;

     

    mysql> change master to

        -> master_host='192.168.117.136',

        -> master_user='backli',

        -> master_password='123',

        -> master_log_file='mysql-bin.000004',

        -> master_log_pos=107;

     

    slave start;

    show slave statusG;

     

    4.验证:

    在主数据master上创建数据库,然后到slave上看,就会同步过去;

    Master:

    create table aaa(id int,name char(10));

    Query OK, 0 rows affected (0.21 sec)

    Slave:

    mysql> show tables ;

    +----------------+

    | Tables_in_lidb |

    +----------------+

    | aaa            |

    +----------------+

    1 row in set (0.00 sec)

     

     

     

     

     

    【反向主从:】

    192.168.117.137为主master   192.168.117.136为从slave

    137主配置:

    1.创建用户,主机名,密码,并设置给从库复制的权限

    mysql -u root -p123

    insert into mysql.user(Host,User,Password) values('localhost','backli2',password('123'));

    grant replication slave on *.* to 'backli2'@'192.168.117.136' identified by '123';

    flush privileges;

     

    2.编辑配置文件:

    vim /etc/my.cnf

    binlog_format=mixed

    binlog_do_db=lidb

    binlog_ignore_db=mysql

    auto_increment_increment=10

    auto_increment_offset=2

     

    启动服务

    service mysqld restart

     

     

    136——slave库配置:

    1.编辑配置文件,

    vim /etc/my.cnf

    添加:

    log-bin=mysql-bin

    replicate_do_db=lidb

    replicate_ignore_db=mysql

    log_slave_updates=on

     

    2. 首先进入master库,查看二进制日志问价名称和偏移量

    mysql -u root -p123

    show master status;

     

    3. 进入slave数据库,配置连接master的IP地址,数据库用户,密码,日志名称,偏移量编号,设置拉取同步操作

     

    mysql -u root -p123

    slave stop;

     

    change master to  master_host='192.168.117.137',master_user='backli2',master_password='123',master_log_file='mysql-bin.000007',master_log_pos=107;

    slave start;

     

    show slave statusG;

    看到双yes即为拉取同步成功

     

    【双主数据库最后的验证:】

    136数据库上验证:

    mysql  -u  root  -p123

    use lidb;

    create table test(id int auto_increment primary key,name char(16));

     

    insert into test(name) values ('test1');

    insert into test(name) values ('test2');

    insert into test(name) values ('test3');

     

    在137上:

    insert into test(name) values ('test4');

    insert into test(name) values ('test5');

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    awk 入门教程【转】
    xargs 命令教程【转】
    redis 执行lua脚本
    SpringMVC 执行过程分析
    EurekaClient 服务注册、发现、续约
    Springboot 自动配置 & 自定义Starter
    Netty 实现HttpServer
    Spring中@Import 用法
    Netty自定义任务&Future-Listener机制
    Springboot + Netty + WebSocket 实现简单的聊天
  • 原文地址:https://www.cnblogs.com/Leonardo-li/p/9071134.html
Copyright © 2011-2022 走看看