双主数据库配置与应用
双主数据库
|
综合实验前提: 这里介绍双主数据库,可以根据双主数据库来做单循环数据库,配置基本相同
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');
|
|