双主数据库配置与应用

                                                                  双主数据库

 

 

综合实验前提:

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

 

1.双主数据库:

问题:主键冲突:

解决方法:等差连接

 

2.单循环:

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

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

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

 

3.一主库拖8从库

 

 

双主数据库实验:

注意:id不能重复

 

两台mysqlIP地址

192.168.117.136     192.168.117.137

show master status;

show slave status\G;

【主从数据库】

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 status\G;

 

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 status\G;

看到双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');

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-05-22 11:24  Leonardo-li  阅读(936)  评论(0编辑  收藏  举报