mariadb实现主从同步

准备两台服务器
Mariadb-Master:192.168.44.150
Mariadb-Backup:192.168.44.148

安装mariadb:

https://blog.csdn.net/qq_50247813/article/details/135402502?spm=1001.2014.3001.5502

组从复制原理如下
在这里插入图片描述

  1. 修改主数据库配置如下

    vi /etc/my.cnf.d/server.cnf
    
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    server_id = 150
    log-bin= mysql-bin
    lower_case_table_names=1
    binlog-format=ROW
    log-slave-updates=True
    sync-master-info=1
    slave-parallel-threads=3
    binlog-checksum=CRC32 
    master-verify-checksum=1
    slave-sql-verify-checksum=1
    
  • character-set-server=utf8 设置数据库默认字符集
  • collation-server=utf8_general_ci 设置校验规则
  • server_id = 150 主从id必须唯一,推荐使用ip位
  • log-bin= mysql-bin 二进制日志,后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下
  • lower_case_table_names=1 库表不区分大小写
  • binlog-format=ROW 二进制日志文件格式
  • log-slave-updates=True slave更新是否记入日志
  • sync-master-info=1 值为1确保信息不会丢失
  • slave-parallel-threads=3 同时启动多少个复制线程,最多与要复制的数据库数量相等即可
  • binlog-checksum=CRC32 效验码
  • master-verify-checksum=1 启动主服务器效验
  • slave-sql-verify-checksum=1 启动从服务器效验
  1. 修改从数据库配置

     vi /etc/my.cnf.d/server.cnf
    
    	[mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    server_id=148
    relay_log = relay-bin
    lower_case_table_names=1
    
  • server_id=148 主从id必须唯一
  • relay_log = relay-bin 中继日志, 后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下
  1. 重启主从数据库,配置生效

     systemctl restart mariadb
    
  2. master节点配置

    注:如果使用普通用户需要授权binlog权限

     grant replication slave, replication client on *.* to 'user'@'%' identified by 'passwd';
    

    还有注意将slave加入到master的远程访问列表中

     GRANT ALL PRIVILEGES ON *.* to  `root`@`192.168.44.*` identified by '123456';flush privileges;
    

     mariadb -uroot -p123456
    
    MariaDB [(none)]> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000002 |     1218 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.000 sec)MariaDB [(none)]> select binlog_gtid_pos('mysql-bin.000002', 1218 );
    +--------------------------------------------+
    | binlog_gtid_pos('mysql-bin.000002', 1218 ) |
    +--------------------------------------------+
    | 0-150-6                                    |
    +--------------------------------------------+
    1 row in set (0.000 sec)
    
  3. 从节点配置

    MariaDB [(none)]> set global gtid_slave_pos='0-150-6';Query OK, 0 rows affected (0.004 sec)MariaDB [(none)]>  change master to master_host='192.168.44.150',master_user='root',master_password='123456',master_use_gtid=slave_pos;Query OK, 0 rows affected (0.008 sec)MariaDB [(none)]> start slave;Query OK, 0 rows affected (0.005 sec)MariaDB [(none)]>
    
  4. 验证salve状态

    		MariaDB [(none)]> show slave status\G
    *************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.44.150Master_User: rootMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000002Read_Master_Log_Pos: 1722Relay_Log_File: relay-bin.000002Relay_Log_Pos: 1174Relay_Master_Log_File: mysql-bin.000002Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Rewrite_DB: Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 1722Relay_Log_Space: 1477Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 150Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: Slave_PosGtid_IO_Pos: 0-150-9Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: optimisticSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesSlave_DDL_Groups: 2
    Slave_Non_Transactional_Groups: 1Slave_Transactional_Groups: 0
    1 row in set (0.000 sec)
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏、设计选什么内存条?光威龙武系列DDR5量大管饱

如果你是一位PC玩家或者创作者,日常工作娱乐中,确实少不了大容量高频内存的支持,这样可以获得更高的工作效率,光威龙武系列DDR5内存条无疑是理想之选。它可以为计算机提供强劲的性能表现和稳定的运行体验,让我们畅玩游…

【PB续命07】JDBC连接达梦数据库

JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了…

【我的Rust库】get_local_info 0.1.7发布

大家对我真不错,0.1.6版发布才两天,阅读量已超600。感谢,我的运气真好。 以后会继续带给 Rust爱好者 更多的好东西。 get_local_info是一个获取linux本地信息的Rust三方库,其目标是降低获取本地linux系统信息的难度。支持银河麒…

代理IP中的API提取链的关键作用

在数字时代,互联网已成为我们日常生活和工作中不可或缺的一部分。随着网络技术的不断发展,代理IP作为一种网络协议,越来越受到人们的关注。代理IP可以通过代理服务器转发HTTP、HTTPS等请求,使用户的真实IP地址得以隐藏&#xff0c…

VisualVM 连接到远程服务器

使用 VisualVM 连接到远程服务器的步骤如下: 在远程服务器上启动JMX服务: 在你的 Java 应用程序启动脚本或命令行参数中添加 JMX 参数。示例命令如下: bash复制代码 java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.…

中国IT产经新闻:新能源汽车发展前景与燃油车的利弊之争

随着科技的进步和环保意识的提高,新能源汽车在全球范围内逐渐受到重视。然而,在新能源汽车迅速发展的同时,燃油车仍然占据着主导地位。本文将从新能源与燃油车的利弊、新能源汽车的发展前景两个方面进行分析,以期为读者提供全面的…

Codeforces Hello 2024 A~D,F1

A.Wallet Exchange(思维) 题意: Alice和Bob各自拥有 a , b a,b a,b枚硬币,他们决定以Alice为先手开始比赛,比赛中每人在每轮需按顺序执行操作1和操作2: 操作1:交换两人手上拥有的硬币数量,或什么都不做 …

用python提取word中的所有图片

使用word中提取的方式图片会丢失清晰度,使用python写一个脚本,程序运行将弹出对话框选择一个word文件,然后在弹出一个对话框选择一个文件夹保存word中的文件。将该word中的所有图片都保存成png格式,并命名成image_i的样式。 程序…

JSP内置对象(9大内置对象和4种作用域)

JSP(JavaServer Pages)是一种用于开发动态Web应用程序的Java技术,它提供了一组内置对象和作用域,用于在JSP页面中访问和处理数据。 JSP的9大内置对象 request(请求对象):代表客户端的HTTP请求&…

高校教务系统登录页面JS分析——河北农业大学教务系统

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密码加…

Python学习之路——文件部分【书接上回】

一、书接上回 上个博客我说过,为什么最开始的时候一定要将文件内的中文的逗号替换为英文的逗号,接下来,请看(其实想一想,感觉没必要,不过也是好的,总要练练手的嘛) def func03(st…

Allure03-报告结构解析

Allure03-报告结构解析 高清B站视频链接 一旦您了解了报告的外观。您可能希望获得更多数据丰富的报表。 您可能需要考虑为您的测试框架使用 Allure 适配器之一,这将允许收集 更多信息。跳转到集成部分,了解有关与测试框架集成的更多信息。 典型的报告由…

网络原理OSI

目录 一、应用层 1、功能 2、协议的分类 二、UDP原理(传输层) 1、协议端格式 2、格式解释 三、TCP原理(传输层) 1、协议端格式 2、长度 3、可靠传输 (1)确认应答 (2)超时…

设备树根节点下的compatile属性的作用

一. 简介 每个节点都有 compatible 属性,根节点 “ /” 也不例外。 imx6ull-alientek-emmc.dts 设备树 文件中的根 节点下也有一个 compatible 属性。 本文继续学习设备树文件的语法。具体学习根节点 "/" 下的 compatile属性的作用。 二. 设备树根节…

python内app自动化测试的局限性,该如何破局?

Python在App自动化测试方面非常流行,尤其对于移动应用(Android和iOS)的测试,可以借助于像Appium、Robot Framework等工具进行跨平台自动化。然而,即使使用Python这样的强大语言,App自动化测试也存在一些局限…

JavaScript的闭包、执行上下文、到底是怎么回事?还有必要学吗?

在上一课,我们了解了 JavaScript 执行中最粗粒度的任务:传给引擎执行的代码段。并且,我们还根据“由 JavaScript 引擎发起”还是“由宿主发起”,分成了宏观任务和微观任务,接下来我们继续去看一看更细的执行粒度。 一…

彻底卸载Microsoft Edge:一步步指南

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 随着技术的不断发展,互联网浏览器已成为我们日常生活中不可或缺的工具之…

网络安全B模块(笔记详解)- Web渗透测试

Web渗透测试 1.通过渗透机Kali1.0对服务器场景PYsystem20192进行Web渗透测试(使用工具w3af的对目标Web服务器进行审计),在w3af的命令行界面下,使用命令列出所有用于审计的插件,将该操作使用的命令作为Flag值提交; 进入kali命令控制台中使用命令w3af_console进入w3af命令…

APP广告变现常见的植入广告类型

随着移动互联网的快速发展,APP广告变现成为许多应用开发者和企业的重要收入来源之一。在众多广告类型中,植入广告因其自然、有效的推广方式而备受欢迎。本文将深入探讨APP广告变现中常见的植入广告类型。 admaoyan猫眼聚合 内容植入广告: 原生…

设计模式的艺术P1基础—2.4-2.11 面向对象设计原则

设计模式的艺术P1基础—2.4-2.11 面向对象设计原则 2.4 面向对象设计原则概述 向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码的重用,另一方面要确保系统能够易于扩展和修改,具有较好的灵活性。 面向对象设计…