双主数据库配置与应用
双主数据库
|
综合实验前提: 这里介绍双主数据库,可以根据双主数据库来做单循环数据库,配置基本相同
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');
|
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探