首页 > 数据库 >mysql 双主(互为主从)

mysql 双主(互为主从)

时间:2024-06-14 10:45:31浏览次数:15  
标签:master1 binlog master2 slave log mysql master 为主 双主


先要确保两个数据库的数据一致

1、master1上操作,修改my.cnf配置文件

[mysqld]
#必须唯一
server_id = 1
#开启binlog日志
log-bin = mysql-bin
relay-log=relay-bin
#要进行主从的数据库
binlog-do-db=coin
#指定自增id值从几开始
auto_increment_offset=1
#指定自增值的步长
auto_increment_increment=2
#设置清除log的天数
expire_logs_days=30

2、在master1上操作: 创建同步账号并授权 (此账号会给到master2做slave账号)


CREATE USER 'repl'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

flush privileges;

3、master1上操作:记下master1上的bin-log位置(此位置会给到master2做为同步起始位置)

show master status;

结果如下:

4、master2上操作,修改my.cnf配置文件

#必须唯一
server_id = 2
#开启binlog日志
log-bin = mysql-bin
relay-log=relay-bin
#要进行主从的数据库
binlog-do-db=coin
#指定自增id值从几开始
auto_increment_offset=2
#指定自增值的步长
auto_increment_increment=2
#设置清除log的天数
expire_logs_days=30

5、在master2上操作: 创建同步账号并授权 (此账号会给到master1做slave账号)

grant replication slave on *.* to 'replication'@'%';
grant replication slave on *.* to 'replication'@'%' identified by '123456';

flush privileges;

6、master2上操作:记下master1上的bin-log位置(此位置会给到master2做为同步起始位置)

show master status;

结果如下:

7、在master2上操作:master2作为从库备份master1的数据

stop slave;
change master to master_host='192.168.50.49',master_user='replication',master_password='123456',master_port=4301,master_log_file='mysql-bin.000001',master_log_pos=154;
start slave;

用  show slave status\G查看同步状态

8、在master1上操作:master1作为从库备份master2的数据

stop slave;
change master to master_host='192.168.50.49',master_user='replication',master_password='123456',master_port=4302,master_log_file='mysql-bin.000001',master_log_pos=606;
start slave;

用  show slave status\G查看同步状态

查看binlog日志指令

show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

例如  show binlog events in 'mysql-bin.000012' FROM 12664382 limit 50;

设置binlog日志有效期(自动清理binlog日志)

show variables like 'expire_logs_days';

set global expire_logs_days = 30; #设置binlog多少天过期

跳过错误:

stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;
start slave;

show slave status\G

标签:master1,binlog,master2,slave,log,mysql,master,为主,双主
From: https://www.cnblogs.com/abowu/p/18247332

相关文章

  • mysql高级查询技巧
    常见表表达式(CommonTableExpressions,简称CTEs)描述:CTEs是SQL中的一种高级查询功能,它允许用户定义一个临时的结果集,这个结果集在执行后续的SQL语句时可以被引用,就像一个临时表一样。CTEs使得复杂的查询逻辑更加模块化和易于理解。声明和语法:WITHCTE_NameAS(SELECTc......
  • Oracle 是否扼杀了开源 MySQL
    Oracle是否无意中扼杀了开源MySQLPeterZaitsev是一位俄罗斯软件工程师和企业家,曾在MySQL公司担任性能工程师。大约15年前,当甲骨文收购Sun公司并随后收购MySQL时,有很多关于甲骨文何时“杀死MySQL”的讨论。他曾为甲骨文进行辩护,反驳了这些不友好的说法。然而,如今Zaitsev......
  • Docker安装MySQL主从
    Docker安装MySQL主从搭建主从dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]dockerrun-p3306:3306很多-d--namehahamysql:5.7Docker启动容器的数据部分一定挂载出来1、创建Masterdockerrun-p3307:3306--namemysql-master\-v/myd......
  • MySQL安全性管理
    用户权限管理创建和管理用户:使用CREATEUSER和GRANT语句创建和管理用户。例如:CREATEUSER'username'@'host'IDENTIFIEDBY'password';GRANTSELECT,INSERT,UPDATE,DELETEONdatabase.*TO'username'@'host';最小权限原则:只赋予用户执行其任务所需的最......
  • MySQL怎么为表添加描述
    1.MySQL为表添加描述的方法在MySQL中,表本身并没有直接的“描述”字段或属性来存储关于表的额外信息,如用途、创建者、备注等。但是,我们可以通过几种方式来实现这一需求:1.1使用COMMENT关键字为表或列添加注释虽然这不是一个完整的“描述”字段,但我们可以使用COMMENT关键字为表或......
  • 如何查询MySQL存储的树形结构,层次结构
    表定义如下 如果我们需要在表中查询这个树状结构,通过SQL语句,有两种查询方法:1.通过inner自连接查询,适用于简单的结构SELECT*FROMcourse_categoryASoneINNERJOINcourse_categoryAStwoONtwo.parentid=one.idWHEREone.parentid='1'ORDER......
  • 【java计算机毕设】图书管理系统javaweb java MySQL springboot vue html maven送文档
    1项目功能【java计算机专业学长毕业设计分享】智慧图书管理系统JavaSpringBootvueHTMLMySQL前后端分离2项目介绍系统功能:智慧图书管理系统包括管理员和用户两种角色。管理员的功能包括在个人中心修改个人信息和密码,管理员功能模块管理管理员。基础数据管理模......
  • MySQL的联合索引
    这里我先创建一张叫tb_user的表数据有创建一个联合索引  1.符合index(a,b,c)的查询条件 他的查询范围是ref使用了索引2.符合index(a,b)的查询条件  他的查询范围是ref使用了索引3.符合index(a)的查询条件   他的查询范围是ref使用了索引4.符合index(b,c......
  • MySQL 新建事件执行存储过程
    开启事件调度器SETGLOBALevent_scheduler=ON;编写事件注意:命令行会将分号【;】识别为结束符,可以使用navicat创建事件;或者使用DELIMITER关键字替换分号/*如果error_event事件存在,则先删除它*/DROPEVENTIFEXISTSerror_event;/*创建一个名为error_event的事......
  • Linux系统的mysql如何导出表数据
    在Linux系统上,我们可以使用mysqldump命令来导出MySQL数据库中的表数据。mysqldump是一个用于备份数据库的命令行工具,它可以将整个数据库或特定的表导出为SQL脚本文件,以便在其他环境中恢复或迁移数据。本文将介绍如何使用mysqldump命令导出表数据,并提供相关的代码示例和流程图。1......