Mysql主从配置,亲手搭建,保证可用!

article/2025/9/21 4:42:45

配置前准备

1、准备2个mysql环境
2、两个mysql网络互通

第一步

配置mysql配置文件【my.cnf】|【my.ini】
【master】配置如下

[mysqld]
server-id = 1        # 节点ID,确保唯一
log config
log-bin = mysql-bin     #开启mysql的binlog日志功能,binlog日志位置
sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7                           #binlog过期清理时间
max_binlog_size = 100m                    #binlog每个日志文件大小
binlog_cache_size = 4m                        #binlog缓存大小binlog-do-db=test1 #需要同步的数据库
binlog-do-db=test2 #需要同步的数据库max_binlog_cache_size= 512m              #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行auto-increment-offset = 1     # 自增值的偏移量
auto-increment-increment = 1  # 自增值的自增量
slave-skip-errors = all #跳过从库错误

【slave】

[mysqld]
server-id=2
log-bin=mysql-bin #如果从数据库,不需要再往其他数据库同步,可以注释掉
relay-log=slave-relay-bin #必须开启,从主数据库同步的binlog会写入到该目录下
relay-log-index=slave-relay-bin
#如果主从数据库名称相同
replication-do-db=数据库名
#如果主从数据库名称不同
replication-rewrite-db= 主数据库名 -> 从数据库名

第二步

重启服务

service mysql restart

第三步

在主库创建一个用于同步的用户(当然也可以不创建,直接用已有的,不过为了安全建议还是创建一个)

CREATE USER centos1 IDENTIFIED BY 'maluole';
grant replication SLAVE on *.* to 'mycentos1'@'192.168.2.88' identified by 'maluole';

mysql8.0后。授权可能会报错。

#如果使用navicate创建用户,需要修改加密方式
alter user centos1 identified with mysql_native_password by 'maluole'
#修改host改为所有ip
update user set host='%' where user='centos1'
#授权不需要加密码
grant replication SLAVE on *.* to 'centos1'@'%'

第四步

在主服务器上查看master信息,需要记住【file】和【position】

show master status;

第五步

登陆从服务器mysql,增加从节点需要同步的master信息,其中【master_log_file】和【master_log_pos】是从上一步获取到的两个字段信息。执行以下语句

change master to master_host='192.168.2.151',master_user='mycentos1',master_password='maluole',master_log_file='mysql_bin.000015',master_log_pos=413;

参数解释: MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码 MASTER_LOG_FILE :
设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息 MASTER_LOG_POS :
设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

————————————————

注: master_host是主节点的ip地址,master_user
和master_password是前面步骤主服务器创建的用于连接主服务器的帐号和密码,master_log_file和master_log_pos需要从master节点,进入Mysql数据库后进行查询

第六步

在从服务器上启动主从

start slave;#启动主从
stop slave;#暂停主从

注:如果启动从节点失败,需要执行重置。

stop slave;
reset slave;

第七步

该模式下,不会导致数据丢失和截断,因为该值只允许同类的小数据类型转换为大数据类型,其他模式的转换都会发生1677错误。生产环境建议设置该值

set global slave_type_conversions ='ALL_NON_LOSSY';

第八步

查看主从同步状态,没有报错启动成功

show slave status \G;
OR
show slave status;

如下图,均为Yes表示成功。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/4BseNRrh.shtml

相关文章

REPL是什么?

“读取-求值-输出”循环(英语:Read-Eval-Print Loop,简称REPL)是一个简单的,交互式的编程环境 看图理解:

repr()

转:https://www.cnblogs.com/itdyb/p/5046415.html Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。

python replace函数

replace()是一个替换函数 其使用格式为 变量 .replace(要替换的值,替换后的值) 例如:替换空格(给字符串删除空格) 输出结果

python——replace函数

replace就像它的中文翻译,替换的意思,可以输入help(replace)看一下它的用法 replace(self, old, new, count-1, /),这个就是replace的基本用法,old就是指要替换的字符串,,new就是产…

正则表达式--replace

MDN解释: 返回一个由替换值替换一些或所有匹配的模式后的新字符串。 使用以下值作为替换参数 序列变量名代表的值1$$插入一个 “$”2$&插入匹配的子串3$插入当前匹配的子串左边的内容4$’插入当前匹配的子串右边的内容5$n假如第一个参数是 RegExp对象&#xff…

SublimeREPL无法运行,输出:“***Repl Closed***“

我的python3用的是python3.7.8,在Sublime上安装SublimeREPL后发现我的sublimeREPL打开后仅仅是输出了一行***Repl Closed***,对比其他人运行REPL的结果后,发现这个插件还没有运行程序就结束了。 解决方法 在sublime文件目录下Sublime Text …

replace/replaceAll

replace/replaceAll 在leetcode刷到替换空格的问题,一通反复比较,发现String对象中的replace和replaceAll虽然实现效果相同,但是执行用时和内存消耗略有差异;Be Like: 难道说底层实现有哪里不一样?让我来…

如何使用Node.js REPL

目录 1、Nodejs REPL 2、_特殊变量 3、向上箭头键 4、点命令 5、从JavaScript文件运行REPL 1、Nodejs REPL REPL代表Read-Evaluate-Print-Loop,是交互式解释器。 node命令是我们用来运行Node.js脚本的命令: node script.js 如果我们运行node命令…

Node.js的交互式解释器(REPL)

什么是交互式解释器 交互式解释器,就是交互的解释器,即每输入一行然后回车都会有所反应。 必要时可以拿node当计算器来使用。 REPL(Read Eval Print Loop:交互式解释器)表示一个电脑的环境,类似于电脑的cmd命令行,我们可以在其…

简单说说USB协议(三)四种传输方式

数据传输的大致步骤: 配置传输方法——选择事务——发送各种令牌、数据、握手包 传输方法 既然USB是用来进行数据传输的,那么必然会涉及到配置传输方法: 批量传输、中断传输、同步传输、控制传输。 1、批量传输 适用于数据量大&#xf…

USB协议详解第12讲(USB传输-初探)

目录 1.USB传输、事务、包的关系 2.USB传输类型 2.1控制传输 2.2同步传输 2.3批量传输 2.4中断传输 3.传输总结及后期内容 1.USB传输、事务、包的关系 USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。 举个例子可能更好些,"某领导和一…

USB 协议的科普

旧名称 新名称 最新名称 最大速度 2000.04 USB 2.0 480 Mbps 2008.11 USB 3.0 USB 3.1 Gen1 USB 3.2 Gen1 5 Gbps 2013.12 USB 3.1 USB 3.1 Gen2 USB 3.2 Gen2 10 Gbps 2017.09 USB 3.2 USB 3.2 Gen2x2 20 Gbps 英特尔 雷电 3 USB-C Thunder…

USB协议详解第1讲(核心概念通俗理解)

目录 0.概括 1.USB传输(Transfer) 2.事务(Transaction) 3.包(Pack)的概念 4.USB 主机(Host) 5.设备(Device) 6.配置(Configuration&#x…

USB协议基本知识

USB 基本知识 USB的重要关键概念: 1、 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点&…

USB协议分析仪

1 ULPI PHY passive sniffing mode 概念: non driving, no pull-up, no pull-down Function Control.opMode 1; // non-Driving OTG Control.DpPulldown 0; // no pull-down OTG Control.DmPulldown 0; // no pull-down USB IO.ChargerPullupEnDP 0; // no pull-up USB IO.…

usb协议栈概述

usb协议栈概述 usb协议栈的信息源头是www.usb.org usb协议栈的所有者是usb联盟。它有七个美国公司为它的成员 这些公司包括苹果,惠普,英特尔,微软,瑞萨科技,ST微电子,德州仪器 usb的版本发展 从1.0&#…

USB协议-描述符篇(一)

USB协议-描述符篇(一) 1.USB描述符简介2.USB标准描述符2.1 设备描述符2.2 配置描述符2.3 接口描述符2.4 端点描述符2.5 字符串描述符 3.特殊类描述符4.USB类定义5.USBDescriptorType 1.USB描述符简介 USB描述符,即使用描述符报告它们的属性。…

USB协议 - UVC标准协议规范(二)

USB协议-UVC标准协议规范(二) 1.概述2.UVC功能特征2.1 Video Interface Class2.2 Video Interface subclass and Protocol2.3 UVC功能拓扑2.3.1 Unit单元2.3.1.1 SU(选择器单元)2.3.1.2 PU(处理单元)2.3.1.3 EU(编码单元)2.3.1.4 …

USB 协议整理 五:USB概述及协议基础(四)

十一、USB 的四种传输类型 1、批量传输 详细内容见 《USB2.0标准协议》 8.5.2 Bulk Transactions 章节。 批量事务类型的特点是能够通过错误检测和重试来保证在主机和设备之间无错误地传递数据。批量事务使用由令牌、数据和握手数据包组成的三阶段事务,如图 8-30…

USB总线-USB协议简介(一)

1.简介 USB是通用串行总线(Universal Serial Bus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机&a…