MySQL数据库主从复制与读写分离(一)

目录

前言

主从复制设置

配置主服务器

1. **编辑配置文件**:

2. **重启MySQL服务**:

3. **创建复制用户**:

4. **记录二进制日志文件位置**:

配置从服务器

1. **编辑配置文件**:

2. **重启MySQL服务**:

3. **配置复制**:

4. **启动复制**:

5. **检查复制状态**:

### 读写分离配置

#### 应用程序实现

#### 使用ProxySQL实现


前言

下面将详细介绍这两个过程的设置步骤,这里需要你有基础的MySQL安装和配置经验。

主从复制设置

配置主服务器

1. **编辑配置文件**:

找到MySQL的配置文件`my.cnf`(Linux系统)或`my.ini`(Windows系统),通常位于`/etc/mysql/`(Linux)或MySQL安装目录下(Windows)。在`[mysqld]`段中添加以下行:

   server-id=1log-bin=mysql-binbinlog-do-db=your_database_name  # 可选,如果只想复制特定数据库

   `server-id`为MySQL服务器的唯一ID,主服务器设置为1。

   `log-bin`启用二进制日志,是复制的基础。

2. **重启MySQL服务**:

使配置生效。

   sudo systemctl restart mysql
3. **创建复制用户**:

登录到MySQL,为从服务器复制操作创建一个专用用户。

 CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';FLUSH PRIVILEGES;
4. **记录二进制日志文件位置**:

执行以下命令,记下`File`和`Position`的值,从服务器需要这些信息来开始复制过程。

   SHOW MASTER STATUS;
//刷新
flush privileges;//退出
exit;

配置从服务器

1. **编辑配置文件**:

与主服务器类似,设置`server-id`为2(或其他唯一ID),不需要启用`log-bin`,但需要指定`relay-log`来保存从主服务器接收到的日志。

server-id=2
relay-log=relay-bin
2. **重启MySQL服务**:

使配置生效。

   sudo systemctl restart mysql
3. **配置复制**:

登录到MySQL,执行`CHANGE MASTER TO`命令,指定主服务器的连接信息、复制用户及其密码、以及前面记录的二进制日志文件名和位置。

 CHANGE MASTER TOMASTER_HOST='master_ip_address',MASTER_USER='replicator',MASTER_PASSWORD='password',MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=recorded_log_position;
4. **启动复制**:

执行以下命令启动复制过程。

 START SLAVE;
5. **检查复制状态**:

通过以下命令确认复制是否正常工作。

   SHOW SLAVE STATUS\G

   确保`Slave_IO_Running`和`Slave_SQL_Running`都是`Yes`。

//刷新
flush privileges;//退出
exit;

### 读写分离配置

读写分离通常需要应用程序支持或使用第三方工具(如`ProxySQL`)来实现。

#### 应用程序实现

- 在应用程序中创建两个数据库连接,一个用于写操作(连接到主服务器),另一个用于读操作(连接到从服务器)。
- 根据操作类型动态选择使用哪个连接。

-------------------------下一期--------------------出一个有图的=========++++++---==-----00======

#### 使用ProxySQL实现

1. **安装ProxySQL**:根据您的操作系统安装ProxySQL。

2. **配置ProxySQL**:编辑ProxySQL配置文件,添加主服务器和从服务器的信息。

3. **启动ProxySQL**:启动ProxySQL服务。

4. **配置读写分离规则**:通过ProxySQL的管理接口配置读写分离规则。

5. **应用程序连接ProxySQL**:将应用程序的数据库连接指向ProxySQL,而不是直接连接到MySQL服务器。

这提供了一个基础的概念和步骤,每个步骤的实现可能会根据具体的操作系统和环境有所不同。

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

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

相关文章

【Python】进阶学习:pandas--rename()用法详解

【Python】进阶学习:pandas-- rename()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的…

nginx代理minio教程 避坑过的教程 避开SignatureDoesNotMatch

本次教程使用的是单机minio进行演示,集群minio也和这个差不多。 按照这个教程,可以避开nginx代理minio之后,只能访问文件,但是通过预签名url上传文件就会报SignatureDoesNotMatch的坑 暂定如下: 你已经下载好miniom…

Kubernetes operator 零散知识篇【持续更新中】

云原生学习路线导航页(持续更新中) 本文是 Kubernetes operator学习 系列零散知识篇,在学习过程中发现 operator开发 有很多零碎的知识,所以单独用一篇文章记录Kubernetes operator学习系列 快捷链接 Kubernetes operator 前置知识…

基于SpringBoot的物业管理系统

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1 研究…

Springboot 过滤器、拦截器、全局异常处理

Springboot 过滤器、拦截器、全局异常处理 一 过滤器(Filter) 过滤器是JavaWeb三大组件(Servlet,Filter,Listener)之一。 Filter可以把对资源的请求拦截下来,从而实现一些功能。 注意&#…

低代码工具APEX的入门使用(未包含安装)

第一次使用APEX是2019年,这个技术成名已久只是我了解的比较晚。请看Oracle ACE的网站,这就是用APEX做的。实际上有一次我看O记的人操作他们的办公流程,都是用APEX做的。 那一年,我用APEX做了一个CMDB的管理系统。那时候还没有流行…

美摄科技实时语音数字人解决方案

随着科技的飞速发展,数字人技术已经逐渐渗透到我们生活的各个角落。作为数字人技术的先驱者,美摄科技凭借其卓越的实时语音数字人解决方案,正引领着企业步入一个全新的交互时代。 美摄科技的实时语音数字人解决方案,是基于语音和…

为什么在下一个 IT 项目中选择使用 PostgreSQL

在数据库管理系统这个充满活力的领域中,为你的项目选择合适的平台是一项至关重要的决策。面对众多可选项,每个选项都针对特定的需求,做出选择可能会是一项艰巨的任务。这篇博客将概述为什么 PostgreSQL 可能是你正在寻找的关系数据库解决方案…

HCIA-Datacom题库(自己整理分类的)_33_DHCP协议多选【7道题】

1.使用动态主机配置协议DHCP分配IP地址有哪些优点? 可以实现IP地址重复利用 工作量大且不好管理 配置信息发生变化(如DNS),只需要管理员在DHCP服务器上修改,方便统一管理 避免IP地址冲突 2.网络中部署了一台DHCP服务器,但是管理员发现部分主机并没有正确获取到该DHCP服务…

产品说明书模板帮你写好了,快来抄作业

想要写好产品说明书,想在网络上参考,信息繁杂且各有不同,东拼西凑也写不出一个好的产品说明书。这时候,如果有产品说明书模板,不仅可以可以提高工作效率,还能保持产品说明书的一致性、提供参考和指导&#…

Mysql删除重复项:力扣196. 删除重复的电子邮箱

题目链接:196. 删除重复的电子邮箱 - 力扣(LeetCode) 题目描述 sql语句 # Write your MySQL query statement below delete a from person as a inner join person as b where a.email b.email and a.id > b.id 思路:内连接…

Windows下JDK下载、配置Java环境变量配置及多个JDK使用

Windows下JDK下载、配置Java环境变量配置及多个JDK使用 1. Windows下配置Java-JDK环境变量 1.1 下载Windows版本JDK 下载地址:(https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 1.2 Windows下安装JDK 双击进行安装 下一步&#xf…

3.8焕新周什么值得入手?索尼耳机选购指南帮你挑

一年一度的女王节活动即将来临,春暖花开好时候,女生们的购物欲想必也开始蠢蠢欲动。如果想要购入一款降噪耳机,索尼这个品牌是你必须要考虑的选择之一。索尼作为在音频行业耕耘70余年的音频世家,秉持“For The MUSIC为音乐而生”的…

Leetcode面试经典150题(一)

27. 移除元素 public int removeElement(int[] nums, int val) {int res 0;for (int i 0; i < nums.length; i) {if(nums[i]!val){nums[res] nums[i];}}return res;} 26. 删除有序数组中的重复项 class Solution {public int removeDuplicates(int[] nums) {int j 0;fo…

什么是生活?(2024-2-26)

能够被记录下来的思绪&#xff0c;从来都不能百分百传达作者心中所想。 1. 开头 在我很小的时候&#xff0c;我曾思考&#xff1a;什么是宇宙&#xff0c;宇宙的尽头是什么&#xff1b;在我年龄大一些的时候&#xff0c;我曾思考&#xff1a;人为什么或者、人类存在的意义、什么…

解决uni-app中使用webview键盘弹起遮挡input输入框问题

这个平平无奇的回答&#xff0c;可能是全网最靠谱的解决方案。 这里我用的是vue3 setup .vue文件的方式 <view> <web-view :fullscreen"false" :webview-styles"{top: statusBarHeight40,height:height,progress: {color: green,height:1px } }"…

哪里有优质短视频素材网站?分享高质量的短视频素材网站资源

嘿&#xff0c;小伙伴们&#xff0c;是不是在做短视频的时候总觉得少点什么味道&#xff1f;那肯定是因为缺少了那些能让你的视频“味道”更足的素材啦。不用愁&#xff0c;今天我来给大家分享几个超给力的短视频素材网站&#xff0c;保证让你的创作更上一层楼 1蛙学府资源 这…

【C++】String常用的函数总结

一、string的构造函数方式&#xff1a; 代码形式&#xff1a; void Test1() {string s1(); // 空字符串string s2("Hello World"); // 字符串初始化为 "Hello World" string s3(s2); //拷贝构造: 将s2复制给s3、 输出为: Hello Worldstring s4(s2,…

[DevOps云实践] IaaC:通过CloudWatch Agent和自定义Metric监视服务器

[DevOps云实践] IaaC:通过CloudWatch Agent和自定义Metric监视服务器 现在有许多第三方工具可以用于监控EC2实例。尽管事实如此,我想为您提供使用AWS原生资源和工具(如AWS CloudWatch、CloudWatch Agent和CloudFormation)快速设置EC2监控所需的所有信息。 首先,您应该知…

常用通讯协议的理解

一、通讯的一些基本认知 1、什么是异步或同步通信 异步通信在发送字符时&#xff0c;所发送的字符之间的时间间隔可以是任意的。发送端可以在任意时刻开始发送字符&#xff0c;因此必须在每一个字符的开始和结束的地方加上标志&#xff0c;即加上开始位和停止位&#xff0c;以…