Linux——MySQL主从复制与读写分离

news2024/9/23 1:38:03

实验环境

虚拟机 3台 centos7.9

网卡NAT模式 数量 1

组件包mysql-5.6.36.tar.gz  cmake-2.8.6.tar.gz

设备

IP

备注

Centos01

192.168.223.123

Amoeba

Centos02

192.168.223.124

Master

Centos03

192.168.223.125

Slave

MySQL安装 

主从同时操作

安装所需要的组件包

[root@chicken ~]# yum -y install gcc gcc-c++ ntp vim net-tools ncurses-devel autoconf

上传mysql安装包mysql-5.6.36.tar.gz和cmake-2.8.6.tar.gz

解压,编译安装cmake

[root@chicken ~]# tar zxf cmake-2.8.6.tar.gz 
[root@chicken ~]# cd cmake-2.8.6/
[root@chicken cmake-2.8.6]# ./configure && gmake && gmake install

解压mysql并编译安装mysql

[root@chicken ~]# tar zxf mysql-5.6.36.tar.gz 
[root@chicken ~]# cd mysql-5.6.36/
[root@chicken mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@chicken mysql-5.6.36]# make && make install

创建mysql用户和组

[root@chicken ~]# groupadd mysql
[root@chicken ~]# useradd -M -s /sbin/nologin mysql -g mysql

修改mysql安装目录权限,复制默认配置文件

[root@chicken ~]# chown -R mysql:mysql /usr/local/mysql
[root@chicken ~]# cp support-files/my-default.cnf /etc/my.cnf

MySQL数据库初始化

[root@chicken ~]# ./scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

添加mysql到系统服务

[root@chicken ~]# cp support-files/mysql.server /etc/init.d/mysqld
[root@chicken ~]# chmod +x /etc/init.d/mysqld
[root@chicken ~]# chkconfig --add mysqld
####启动MySQL服务#######
[root@chicken ~]# systemctl start mysqld

添加mysq操作指令关联系统

[root@chicken ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile && . /etc/profile
####用户登录测试#####
[root@chicken ~]# mysql -u root

MySql主从复制

主配置

[root@chicken mysql]# cat << EOF >> /etc/ntp.conf 
> server 127.127.1.0
> fudge 127.127.1.0 stratum 8
> EOF
[root@chicken mysql]# systemctl start ntpd

Ntp服务slave从配置 

[root@chicken ~]# yum -y install ntpdate
[root@chicken ~]# ntpdate 192.168.223.124  ##主服务的IP地址

主服务master配置

[root@chicken ~]# sed -i 's/# server_id = .*/server_id = 11/' /etc/my.cnf
[root@chicken ~]# sed -i '/server_id = 11/a\log_bin = master-bin' /etc/my.cnf
[root@chicken ~]# sed -i '/log_bin = master-bin/a\log-slave-updates = true' /etc/my.cnf
[root@chicken ~]# systemctl restart mysqld

创建授权用户myslave

[root@chicken ~]# mysql -u root
mysql> grant replication slave on *.* to 'root'@'192.168.223.%' identified by '123456';
mysql> flush privileges;
mysql> show master status;

 从服务器配置

[root@chicken ~]# sed -i 's/# server_id = .*/server_id = 22/' /etc/my.cnf
[root@chicken ~]# sed -i '/server_id = 22/a\relay-log = relay-log-bin' /etc/my.cnf
[root@chicken ~]# sed -i '/relay-log = relay-log-bin/a\relay-log-index = slave-relay-bin.index' /etc/my.cnf
####重启MySql服务######
[root@chicken ~]# systemctl restart mysqld

连接主服务器

[root@chicken ~]# mysql -u root
mysql> change master to master_host='192.168.160.51',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;

MySQL读写分离

部署Java运行环境,上传安装包jdk-6u14-linux-x64.bin

[root@chicken ~]# chmod +x jdk-6u14-linux-x64.bin
[root@chicken ~]# ./jdk-6u14-linux-x64.bin
[root@chicken ~]# mv jdk1.6.0_14 /usr/local/jdk1.6

添加Java运行环境变量

[root@chicken ~]# vim /etc/profile
####在export下面提添加变量######
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:/$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba/
[root@chicken ~]# java -version

部署amoeba,解压amoeba软件包并创建主目录

[root@chicken ~]# mkdir /usr/local/amoeba
[root@chicken ~]# tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba

编辑主配置文件

[root@chicken ~]# cd /usr/local/amoeba/
[root@chicken amoeba]# vim conf/amoeba.xml 
<property name="user">root</property>            客户端连接的用户
<property name="password">123456</property>      客户端连接密码

取消注释
<property name="writePool">server1</property>      写入数据池名称
<property name="readPool">server2</property>        读取数据池名称

编辑数据库连接文件

[root@chicken amoeba]# vim conf/dbServers.xml 
<property name="port">3306</property>
<property name="schema">test</property> 		默认库 名称
<property name="user">root</property>          链接数据库用户名
<property name="password">123456</property>  链接数据库密码  

修改ipaddress 127.0.0.1 为mysql 主和从的IP
  <dbServer name="server1"  parent="abstractServer">
                <factoryConfig>
                        <!-- mysql ip -->
                        <property name="ipAddress">192.168.223.124</property>
                </factoryConfig>
        </dbServer>

        <dbServer name="server2"  parent="abstractServer">
                <factoryConfig>
                        <!-- mysql ip -->
                        <property name="ipAddress">192.168.223.125</property>
                </factoryConfig>
        </dbServer>

启用amoeba

[root@chicken amoeba]# nohup ./bin/amoeba start 2>&1 &

查看端口

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

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

相关文章

SG11加密,屠龙少年最终变成了恶龙

加密只是一种手段&#xff0c;不应该成为收割工具&#xff0c;最近收到2个客户询盘&#xff0c;结果都是因为代码被加密无法提供服务&#xff0c;无奈放弃。 sg11加密的初衷是为了防止客户不遵守契约衍生出来的方案&#xff0c;没想到屠龙少年最终变成了恶龙。第一个客户因为服…

【知识整理】Git 使用实践问题整理

问题1、fatal: refusing to merge unrelated histories 一、Git 的报错 fatal: refusing to merge unrelated histories 新建了一个仓库之后&#xff0c;把本地仓库进行关联提交、拉取的时候&#xff0c;出现了如下错误&#xff1a; fatal: master does not appear to be a g…

MYSQL---日志

1.日志的概述 日志是MySQL数据库的重要组成部分。日志文件中记录着MySQL数据库运行期间发生的变化&#xff1b;也就是说用来记录MySQL数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时&#xff0c;可以通过日志查看文件出错的原因&#xff0…

QUIC来了!

什么是QUIC QUIC&#xff0c;快速UDP网络连接(Quick UDP Internet Connection)的简称&#xff0c;即RFC文档描述它为一个面向连接的安全通用传输协议。其基于UDP协议实现了可靠传输及拥塞控制&#xff0c;简单来说&#xff0c;QUIC TCP TLS。 为什么有了QUIC HTTP2.0为了为了…

京津冀国际光伏展

京津冀国际光伏展是一个国际性的光伏展览会&#xff0c;旨在推动京津冀地区光伏产业的发展&#xff0c;促进国内外光伏技术的交流与合作。展览会通常包括展览展示、技术交流、高层论坛等环节&#xff0c;吸引了来自全球各地的光伏企业、科研机构、行业专业人士等参观和参与。 京…

抖店入驻费用是多少?新手入驻都有哪些要求?2024费用明细!

我是电商珠珠 我做电商做了将近五年&#xff0c;做抖店做了三年多&#xff0c;期间还带着学员一起做店。 今天&#xff0c;就来给大家详细的讲一下在抖音开店&#xff0c;需要多少费用&#xff0c;最低需要投入多少。 1、营业执照200元左右 就拿个体店举例&#xff0c;在入…

软件测试的基本流程是什么?软件测试流程详细介绍

软件测试和软件开发一样&#xff0c;是一个比较复杂的工作过程&#xff0c;如果无章法可循&#xff0c;随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化&#xff0c;并且快速、高效、高质量地完成测试工作&#xff0c;需要制订完整且具体的测试流程。 01…

融云IM五折限量优惠,史无前例底价助力应用出海

各位疯狂心动的开发者们&#xff0c;不是你没有原则&#xff0c;实在是融云给的太多啦&#xff01; 即日起&#xff0c;新项目上线使用融云 Global IM UIKit&#xff08;&#x1f449;了解更多&#xff09;&#xff0c;可申请融云 IM 国内 5 折、海外 6 折优惠&#xff0c;尽享…

Ambari动态给YARN分配计算节点

1.前言 YARN可用的计算节点数量并不总是等于 Hadoop集群节点数量&#xff0c;可以根据业务需求分配 YARN计算节点数量。 这里首先介绍一些前置知识&#xff1a; YARN中 ResourceManager 和 NodeManager是两个核心组件&#xff0c;其中 ResourceManager负责集群资源的统一管理…

算法学习01:排序二分

算法学习01&#xff1a;排序&&二分 前言 提示&#xff1a;以下是本篇文章正文内容&#xff1a; 一、排序 1.快速排序 2.归并排序&#xff1a; 二、二分 1.整数 2.浮点数 总结 提示&#xff1a;这里对文章进行总结&#xff1a; 记忆模版&#xff01;&#xff01;&am…

贪心算法(区间问题)

452. 用最少数量的箭引爆气球 题目(求无重复区间) 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着…

一文2500字从0到1使用JMeter进行接口测试教程!

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Cho…

关于拖拽功能

文章目录 写在前面自己手动实现拖拽的demo技术细节&#xff1a;Js中拖拽(拉)事件&#xff08;drag 和 drop&#xff09;浏览器兼容性拖拽Api的介绍拖拽流程1.dragstart事件2.dragenter事件3.dragover事件4.drop事件(必须要dragover事件触发)5.dragend事件MDN关于拖拽的解析 相关…

独立游戏《星尘异变》UE5 C++程序开发日志2——创建并编写一个C++类

在本篇日志中&#xff0c;我们将要用一个C类来实现一个游戏内的物品&#xff0c;同时介绍UCLASS、USTRUCT、UPROPERTY的使用 一、创建一个C类 我们在UE5的"内容侧滑菜单"中&#xff0c;在右侧空白中右键选择"新建C类"&#xff0c;然后可以选择一个想要的…

GEE代码条带问题——sentinel-1接缝处理的问题

问题 我有兴趣确定 NDVI 损失最大的年份。我创建了一个函数来收集所有陆地卫星图像并应用预处理。当我导出结果以识别 NDVI 损失最大年份时&#xff0c;生成的数据产品与陆地卫星场景足迹有可怕的接缝线。造成这种情况的原因是什么以及如何调整代码&#xff1f; sentinel1数据…

大模型基础应用框架(ReACT\SFT\RAG)创新及零售业务落地

如何将大语言模型的强大能力融入实际业务、产生业务价值&#xff0c;是现在很多公司关注的焦点。在零售场&#xff0c;大模型应用也面临很多挑战。本文分享了京东零售技数中心推出融合Agent、SFT与RAG的大模型基础应用框架&#xff0c;帮助业务完成大模型微调、部署和应用&…

华为数通方向HCIP-DataCom H12-821题库(多选题:61-80)

第61题 ACL 可分为如下哪些类别? A.用户自定义 ACL B.基本 ACL C.二层ACL D.高级ACL 【参考答案】ABCD 【答案解析】 A. 用户自定义 ACL (User-defined ACL): 这是用户根据自身需求自定义的 ACL,用于实现特定的访问控制策略。B.基本 ACL (Standard ACL): 基本 ACL 是基于源 …

逆向案例四、进阶,爬取精灵数据咨询前五十页数据

python代码示例: import csv import execjs import requests f open(精灵数据.csv,w,encodingutf-8,newline) csv_writer csv.DictWriter(f,fieldnames[标题,发布时间,新闻来源,详情页链接,转自,点击量,新闻作者,发布时间小时,]) csv_writer.writeheader() data [] for pa…

HTTP/2、HTTP/3分别解决了什么问题

总的来说就是HTTP/1.1是请求-响应模型导致队头阻塞问题&#xff0c;HTTP2是TCP层面导致队头阻塞问题 HTTP/2 多路复用&#xff0c;解决了HTTP/1.1队头阻塞问题 HTTP/1.1 的实现是基于请求-响应模型的。同一个连接中&#xff0c;HTTP 完成一个事务&#xff08;请求与响应&…

【 10X summary report】怎么看?详细解读笔记

报告内容 在开始正式的分析之前&#xff0c;需要查看在对齐和计数过程中生成的任何总结统计信息。下图是由Cell Ranger工具创建的10X总结报告&#xff0c;在从10X scRNA-seq实验生成计数矩阵时会生成。 The left half of the report describes sequencing and mapping statist…