mysql主从复制实操

MySQL 主从复制搭建过程 MySQL 主从复制搭建过程,数据一致性,防止数据丢失,InnoDB事务安全的保护 阅读详情

主从复制简介

在这里插入图片描述
MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

实现MySQL主从复制需要进行的配置:

主服务器:
1)开启二进制日志
2)配置唯一的server-id
3)获得master二进制日志文件名及位置
4)创建一个用于slave和master通信的用户账号

从服务器:
1)配置唯一的server-id
2)使用master分配的用户账号读取master二进制日志
3)启用slave服务

具体实现过程如下:

maseter 192.168.1.101
slave 192.168.1.174

主数据库master修改:

1.修改mysql配置

找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id,也可以设置为IP最后一个段位的值

重启mysql

service mysqld restart

2.从服务器的账号和授权

打开mysql会话shell

mysql -h  -u root -p password



mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'123.57.44.85';
mysql>flush privileges;

以上命令分别对应如下:
1.创建用户slave,创建用户并授权:用户slave,密码123456
2.分配拷贝权限给slave
3.刷新权限

  1. 查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+

File:日志文件的当前文件名
Position:当前数据的记录位置

以上信息是从数据库初始拷贝时位置

从服务器slave修改

1.修改mysql配置

同样找到my.cnf配置文件,添加server-id

 mysql -u root -p root
 vi 
[mysqld]
server-id=2 

设置server-id,必须唯一

关闭slave(如果你以前配置过主从的话,一定要先关闭)

stop slave;

重启mysql

service mysqld restart

2.配置从数据库的同步配置信息

打开mysql会话,执行同步SQL语句

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.101',
    ->     MASTER_USER='slave',
    ->     MASTER_PASSWORD='123456',
    ->     MASTER_LOG_FILE='mysql-bin.000003',
    ->     MASTER_LOG_POS=73;

参数解释:MASTER_HOST : 设置要连接的主服务器的ip地址

MASTER_USER : 设置要连接的主服务器的用户名

MASTER_PASSWORD : 设置要连接的主服务器的密码

MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息

MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

3.启动slave同步进程:

mysql>start slave;

4.查看slave状态:

复制代码

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.101
                  Master_User: rep1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000013
          Read_Master_Log_Pos: 11662
               Relay_Log_File: mysqld-relay-bin.000022
                Relay_Log_Pos: 11765
        Relay_Master_Log_File: mysql-bin.000013
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
        ...

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

上面两项均为yes,说明配置成功,否则,请重复前面的步骤。

到这里MySQL的主从复制就配置完了。

扩展操作-主机当机,指定数据库同步

接下来就可以进行一些验证了,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了。

还可以用到的其他相关参数:

master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:

高级配置:主从只同步部分库或表

同步部分数据有两个思路,
1.master只发送需要的;
2.slave只接收想要的。

** master端 **

binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开)

binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)

举例说明:

1)binlog-do-db=YYY 需要同步的数据库,不在内的不同步。(不添加这行表示同步所有)

# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = game  

这里主库只同步game库

2)binlog-ignore-db = mysql 这是不记录binlog,来达到从库不同步mysql库,以确保各自权限

# 不同步哪些数据库  
binlog-ignore-db = mysql,test,information_schema 

注意:这个配置数据库一开始就直接不生成相关数据库的日志,即便是主库本机上的二进制文件本身也没有相关库的日志信息

** slave端 **

replicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)

replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)

replicate-do-table 设定需要复制的表

replicate-ignore-table 设定需要忽略的复制表

replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符

replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符

与上述对比,这里的replicate就很好理解了,下面简单说几点。

举例子:

从库忽略复制数据库test,但是需要说明的是,其实从库的relaylog中是存在关于test的相关日志(前提是主库binlog-ignore-db没有test的日志配置),只是从库没有使用罢了。

replicate-ignore-db = test

增加通配符的两个配置

replicate-wild-do-table=db_name.% 只复制哪个库的哪个表
replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表

《MySQL系列-主从相关》MySQL主从复制配置实操 如果是本篇博客中搭建的MySQL主从复制,能否可以使用maxwell直接读取从库的binlog呢?根据问题反馈是UUID的问题,想到自己的两个虚拟机是复制而来的,所以需要修改其中一个UUID。注意MASTER_LOG_FILE和MASTER_LOG_POS都要是主机日志的最后一条记录。若是通过canal或者maxwell采集MySQL的binlog日志。想到是从机里没有zxy这个数据,最后在从机里建立zxy数据库。Slave_SQL_Running已连接。Slave_IO_Running连接失败。 阅读详情

相关推荐

解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy.

解决nfs挂载根文件系统报错的问题:VFS: Unable to mount root fs via NFS, trying floppy.

汉尼拔勇闯天涯 4573

MySQL主从复制——实战过程讲解(超细节)

由主库状态表知,从库上的MASTER_LOG_FILE参数的值就是mysql-bin.000006,MASTER_LOG_POS参数的值为1047。如果从库是从主库克隆而来的(不是克隆的可忽略此步),所以server-uuid也和主库一样,所以需要修改,改为不一样的。其中,没有binlog参数则无需添加,server-id不能和master主库一样,最后,我们看到从库上也自动和主库上保存一致了,也有了新建的数据,这样就成功啦。发现失败,是因为从库slave没有创建/backup目录,需要去创建。

Word_Smith_的博客 1458

FreeRTOS OTA实战:从Bootloader设计到安全升级的完整流程(附MQTT示例代码)

本文详细介绍了在FreeRTOS系统中实现安全OTA固件升级的完整流程。内容涵盖从Bootloader设计、存储分区规划到与MQTT协议集成的OTA Agent任务开发,并重点解析了固件签名验证、防回滚等关键安全机制,为嵌入式物联网设备提供了一套高可靠性的远程升级解决方案。

weixin_29248653的博客 157

Mysql数据库——主从复制与读写分离

主从复制(定义、过程、类型、遇到的问题、解决办法)、读写分离(作用、软件(Amoeba))、搭建主从复制和读写分离实际操作、以及一些实际工作遇到主从复制和读写分离的实际例子以及解决办法

一坨小橙子的博客 1958

半导体功率器件IGBT工艺全流程

本文概述了功率器件IGBT(绝缘栅双极型晶体管)的关键制造流程。主要工艺包括:基板制备、离子注入(B+/P+/P+FS层)、绝缘膜形成与加工(CVD沉积及刻蚀)、沟槽刻蚀、电极形成(Emitter和Collector)等步骤。通过离子注入、化学气相沉积和物理气相沉积等半导体工艺,依次完成器件各功能层的构建,最终形成具备高功率特性的IGBT器件。该流程体现了功率半导体制造中典型的掺杂、薄膜沉积和图形化工艺技术。

750

VMware ESXi +DELL虚拟化存储磁盘容量处于紧急状态问题的处理

1、环境介绍 exsi server两台(DELL R730 ): 192.168.3.206 VMware EXSi6.5 192.168.3.207 VMware EXSi6.5 磁盘存储柜一台(DELL SC2000): 192.168.3.208 2、故障处理 由于前期规划的卷空间过大,虚拟机文件逐年增大以后,造成卷的磁盘占用过与整个磁盘空间的容量,虚拟化平台可用容量爆掉,DELL SC2000自动切换到紧急状态,禁止所有磁盘I/O,exsi主机上的虚拟机无法开机 首先,安装

wolf1105的博客 3530

MySQL主从复制保姆级指南(命令详解+实操示例)

主库(Master):记录所有数据变更到二进制日志(binlog),包含增删改操作。以下内容覆盖主从复制原理、核心命令、排错技巧及实操案例,适合零基础快速掌握。异步复制:主库提交事务后即响应客户端,不等待从库同步(默认模式)4. 原主库恢复后,反向配置为从库。:自动追踪事务位置,无需手动指定。错误1:主键冲突(1062)错误2:数据丢失(1032):高并发写入导致主从延迟。错误3:中继日志损坏。

疑犯的博客 1205

Happycapy深度解析:AI智能体的“iPhone时刻“来了?

从理论到实践深度解析了融合OpenClaw和ClaudeCode优点的超强智能体工具Happycapy

program哲学 457

MySQL数据库主从复制+mycat读写分离+MHA实操

MySQL主从复制是一种数据库复制技术,用于将一个MySQL数据库服务器的更改同步到其他MySQL数据库服务器。在主从复制中,有一个主数据库(Master)和一个或多个从数据库(Slave)。主数据库负责接收和处理所有的写操作,而从数据库则通过复制主数据库的日志文件,将这些写操作在自身的数据库中重演,从而实现数据的同步。

m0_67497257的博客 1689

实现真正的「人机」对战:引入三方 AI 引擎

引入三方 AI 引擎 前边,我们实现了与云库对战的象棋游戏。这一节中,我们将开始实现真正的「人机」对战 — 人与手机 AI 之间对弈; 实现一套象棋 AI 工程浩大,这个工作我们后续文章会做一番介绍。现代软件工程并不主张每个人都「造轮子」,因此我们要有「站在巨人肩膀上」的小智慧。 本节概要 从 github 寻找开源中象引擎 梳理引擎接入的思路 寻找适合的开源中国象棋引擎 github 上有大...

tosmart的博客 982

FISCO BCOS(八)——— 一键部署 WeBase

环境 版本 Java Oracle JDK 8 至 14 MySQL MySQL-5.6及以上 Python Python3.6及以上 PyMySQL 1、获取部署安装包: wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-deploy.zip 2、解压安装包: unzip webase-deploy.zip 3、进入目录: c...

林中有神君 3606

mysql 主从复制实操

mysql 主从复制实操

weixin_44076777的博客 244

华为OD机考双机位C卷 - 虚拟理财游戏(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 虚拟理财游戏(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 667

MySQL主从复制实操

1、两台机器开启MySQL服务之后,分别在主机和从机上执行建库语句 #主机与从机都执行 create database order; 2、修改主机的my.cnf配置文件 #在mysqld模块中添加如下配置信息 log-bin=master-bin #二进制文件名称 binlog-format=ROW #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行

weixin_43234647的博客 236

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mySql主从复制实操步骤

1.配置主库:my.ini [mysqld] log-bin=catic_log server-id=3141 2.配置从库my.ini [mysqld] server-id=3142 3.在主库上执行 CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; //mys...

WangGaozhuo的专栏 348

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于Docker从零到一实操MySql的主从复制

我们一开始介绍了如何在docker上安装与启动mysql,以及进入mysql的后台创建数据库与表等;接着我们过了一遍如何基于docker操作mysql 主从库复制。

Bruce__taotao的博客 1117

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Mysql数据库主从复制实操

本文摘要:MySQL 8.0主从复制配置指南,包含6个关键步骤:1)拉取镜像并创建目录结构;2)分别配置主从节点的my.cnf文件,设置GTID、字符集和同步数据库;3)启动容器并挂载配置;4)主库创建复制专用账户;5)导入初始数据;6)从库配置同步连接。特别说明8.0版本需设置get_master_public_key=1解决安全校验问题,并提供SHOW SLAVE STATUS命令验证复制状态的方法,强调Slave_IO_Running和Slave_SQL_Running必须均为Yes才算正常。

weixin_48922638的博客 944

企业中常用的 MySQL主从复制与读写分离 实操

文章目录一、MySQL 读写分离与主从复制理论1、读写分离基本的原理(什么是读写分离)2、为什么要做读写分离3、什么时候要读写分离4、主从复制与读写分离5、mysql 支持的复制类型6、主从复制的工作过程7、MySQL 读写分离原理8、常见的 MySQL 读写分离分为以下两种:二、MySQL 读写分离与主从复制步骤 一、MySQL 读写分离与主从复制理论 1、读写分离基本的原理(什么是读写分离) 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库

Gengchenchen的博客 593

mysql 主从复制 实操步骤 个人学习记录

mysql 主从复制

qq_46376892的博客 226

mysql笔记:25. docker环境中mysql主从复制、主主复制实操

Docker容器是现在的主流技术,容器提供了细粒度的系统隔离机制,每个容器都完全独立,其中包括了应用以及所有需要的系统依赖,可以把系统中每个服务放入容器,让各个服务都以容器的形式运行,这样就大大简化了系统的部署过程,更加便于维护。

斌斌(Java) 1208

MySQL8.0+主从复制实操

position:binlog文件中的字节偏移量,此例中,前694个字节是已经存在的日志,从第695个字节开始,从库才开始接着复制。binlog_ignore_db:主库“不记录哪些库”的白名单,这些数据库的操作不会被写入binlog。binlog-do-db:主库“只记录哪些库”的白名单,只有这些数据库的操作才会被写入binlog。log_bin_index:binlog 索引文件,记录“当前有哪些 binlog 文件”sql_log_bin:当前会话的 SQL,是否写入 binlog。

2401_84496585的博客 404

【MySQL】Windows环境下主从复制搭建全步骤(超详细实操版)

MySQL主从复制是数据库高可用、读写分离架构的基础,核心作用是实现主库数据的实时同步,保障数据备份与服务容错。本文针对Windows环境(Win10/Win11),从环境准备到测试验证,完整拆解主从复制的搭建流程,同时梳理常见问题排查方案,适合数据库初学者或需要快速落地部署的开发人员。

专注分享Java 核心进阶、全栈架构实战、AI 工具链落地干货,用技术视角拆解编程效率与创意生成的底层逻辑 。 1211

Mysql 数据库的 主从复制、读写分离、Amoeba 应用(理论加实操配置步骤)

在生产环境中为什么要做主从复制、读写分离 在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

BIGmustang的博客 553

mysql主从复制docker,使用Docker快速搭建MySQL主从复制环境

MySQL常见复制模式MySQL的常见复制模式(假设有DB1,DB2,DB3三个MySQL实例):主从复制 DB1 -> DB2主主复制 DB1 DB2链式复制 DB1 -> DB2 -> DB3环形复制 DB1 -> DB2 -> DB3 -> DB1生产环境常见主从复制,这是最稳健的一种方式;为了切换方便也可选择主主模式,但要注意主主复制必须确保在任何时刻...

weixin_39949473的博客 110

【MySQL】数据库之主从复制和读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

liu_xueyin的博客 1421

MySQL主从复制原理(原理+实操)

主从复制简介 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用「主从复制」。 比如:在复杂的业务系统中,有一句sql执行后导致锁表,并且这条sql的的执行时间有比较长,那么此sql执行的期间导致服务不可用,这样就会严重影响用户的体验度。 主从复制中分为「主服务器(master)「和」从服务器(slave)」,「主服务器负责写,而从服务器负责读」,Mysql的主从复制的过程是一个「异步的过程」。 这样读写分离的过程能够是整体的服务性能提高,即使写操作时间比较长,也不影

qq_40907977的博客 5457
上一篇: FastJson对Object对象的解析问题
下一篇: Nginx负载均衡的几种方式
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值