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

实验环境

虚拟机 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 &

查看端口

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【探索AI】二十二 深度学习之第5周:生成对抗网络(GAN)

生成对抗网络&#xff08;GAN&#xff09; GAN的基本原理与结构常见的GAN模型&#xff08;如DCGAN、StyleGAN等&#xff09;图像生成与风格迁移任务实践&#xff1a;使用GAN进行图像生成或风格迁移任务 GAN的基本原理与结构 生成对抗网络&#xff08;GAN&#xff09;的基本原理…

【经验】f-string 的一些点

【经验】f-string 的一些点 省几个字别数错了对齐它现在几点 省几个字 让 f-string 给你写表达式&#xff0c;在 f-string 中使用 来自动打印表达式 a 10 b 25 print(f"{a b }") >>> a b 35别数错了 对于过大的数字难以一眼看出来它的数量级&#xf…

Android 中get请求网络数据 详细举例

请求链接 https://api.bilibili.com/x/web-interface/ranking 1.添加网络权限 依赖等 implementation com.squareup.okhttp3:okhttp:4.9.3 implementation com.google.code.gson:gson:2.8.92.写请求类network package com.example.myapplication;import android.graphics.Bi…

现代信号处理学习笔记(三)信号检测

通过观测数据判断信号是否存在&#xff0c;这一问题称为信号检测。 目录 前言 一、统计假设检验 1、信号检测的基本概念 2、信号检测理论测度 比率测度 概率测度 3、决策理论空间 二、概率密度函数与误差函数 1、概率密度函数 2、误差函数与补余误差函数 三、检测概…

TypeError: the JSON object must be str, bytes or bytearray, not dict

参考文章&#xff1a;https://blog.csdn.net/yuan2019035055/article/details/124934362 Python基础系列&#xff08;一&#xff09;搞懂json数据解析与字典之间的关系 代码&#xff1a; 报错信息: TypeError: the JSON object must be str, bytes or bytearray, not dict …

Python字符串中%d,%.f的用法

在字符串中&#xff0c;我们经常需要改变其中的一些几个字符&#xff0c;比如 第一个d%就是epoch1&#xff0c;会随着epoch的变化而变化。同理&#xff0c;后面的也是。打印出的结果就是 其中&#xff0c;epoch迭代了3次&#xff0c;从0开始。会发现 d%&#xff0c;是整数&…

.NET高级面试指南专题十四【 观察者模式介绍,最常用的设计模式之一】

简介&#xff1a; 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;其目的是定义了一种一对多的依赖关系&#xff0c;当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。 原理&#xff1a; 在观察者模式中…

002-CSS-三角形

三角形 普通三角形带阴影的三角形&#xff1a;box-shadow带阴影的三角形&#xff1a;filter 普通三角形 &#x1f4a1; Tips&#xff1a;设置 div 盒子宽高为零&#xff0c;使用单边框实现 .triangle {width: 0;height: 0;border: 20px solid transparent;border-top-color: …

把python完全卸载干净

1.winR&#xff0c;输入control回车&#xff0c;点击程序和功能&#xff0c;在搜索框输入python&#xff0c;右键点击卸载 2、找到Python安装路径&#xff0c;把所有文件全部删除。 安装路径可以打开CMD输入&#xff1a;where python 3、强制删除Python.exe 打开cmd&#xff…

使用Java生成JWT(JSON Web Token)的详细指南

介绍 在现代应用程序中&#xff0c;身份验证和授权是至关重要的。JSON Web Token&#xff08;JWT&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式用于在各方之间安全地传输信息。在本文中&#xff0c;我们将学习如何使…

大厂报价查询系统性能优化之道!

0 前言 机票查询系统&#xff0c;日均亿级流量&#xff0c;要求高吞吐&#xff0c;低延迟架构设计。提升缓存的效率以及实时计算模块长尾延迟&#xff0c;成为制约机票查询系统性能关键。本文介绍机票查询系统在缓存和实时计算两个领域的架构提升。 1 机票搜索服务概述 1.1 …

在k8s上部署dolphinscheduler

&#xff08;作者&#xff1a;陈玓玏&#xff09; 一、 前提条件 已部署k8s&#xff0c;版本信息如下&#xff1a; k8s为单机部署&#xff1b;已部署nfs&#xff0c;版本如下&#xff1b; 二、 部署helm 以下步骤安装的是二进制版本&#xff0c;如果通过脚本安装&#…

Bert Encoder和Transformer Encoder有什么不同

前言&#xff1a;本篇文章主要从代码实现角度研究 Bert Encoder和Transformer Encoder 有什么不同&#xff1f;应该可以帮助你&#xff1a; 深入了解Bert Encoder 的结构实现深入了解Transformer Encoder的结构实现 本篇文章不涉及对注意力机制实现的代码研究。 注&#xff1a;…

在Linux以命令行方式(静默方式/非图形化方式)安装MATLAB(正版)

1.根据教程&#xff0c;下载windows版本matlab&#xff0c;打开图形化界面&#xff0c;选择linux版本的只下载不安装 2.获取安装文件夹 3.获取许可证 4.安装 &#xff08;1&#xff09;跳过引用文章的2.2章节 &#xff08;2&#xff09;本文的安装文件夹代替引用文章的解压IS…

CSS变量和@property

CSS变量 var() CSS 变量是由CSS作者定义的实体&#xff0c;其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名&#xff0c;并使用特定的 var() 来访问。&#xff08;比如 color: var(--main-color);&#xff09;。 基本用法 CSS变量定义的作用域只在定义该…

Rio: Order-Preserving and CPU-Efficient Remote Storage Access——论文泛读

EuroSys 2023 Paper 论文阅读笔记整理 问题 现代NVMe SSD和RDMA网络提供了更高的带宽和并发性&#xff0c;但现有的网络存储系统&#xff08;例如&#xff0c;基于结构的NVMe&#xff09;&#xff0c;由于存储订购保证效率低下&#xff0c;无法充分利用这些新设备。在这些系统…

[DevOps云实践] 3大云厂商(AWS/GoogleCP/Azure)的服务对比一览

[DevOps云实践] 3大云厂商(AWS/GoogleCP/Azure)的服务对比一览 如今有很多人在使用云端或者把他们的基础架构迁移到云端。每个云服务提供商都有其优势和劣势,大部分情况下您的选择将基于您想要在云中构建什么。您公司的各个团队也很可能会倾向于为他们的特定项目使用不同的…

【论文解读】Robust Collaborative 3D Object Detection in Presence of Pose Errors

CoAlign 摘要引言方法实验结论 摘要 协同3D对象检测利用多个代理之间的信息交换&#xff0c;以在存在诸如遮挡之类的传感器损伤的情况下提高对象检测的准确性。然而&#xff0c;在实践中&#xff0c;由于定位不完善而导致的姿态估计误差会导致空间消息错位&#xff0c;并显著降…

使用html网页播放多个视频的几种方法

前言 因为项目测试需要&#xff0c;我需要可以快速知道自己推流的多路视频流质量&#xff0c;于是我想到可以使用html网页来播放视频&#xff0c;实现效果极其简单&#xff0c;方法有好几种&#xff0c;以下是几种记录&#xff1a; 注意&#xff1a;测试过&#xff0c;VLC需要使…

微服务:Feign篇

1.什么是Feign Feign是一种声明式、模板化的HTTP客户端&#xff0c;可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口&#xff0c;可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码&#xff…