Mysql一主多从部署

K8s-K8s部署MySQL一主多从-非真正高可用 一主多从,主节点宕机后,会自动调度至其他节点部署、启动Master,数据不会丢失,从节点会重新连接同步主节点并继续同步数据。 阅读详情

1.下载地址

https://dev.mysql.com/downloads/mysql/

2.下载tar.gz包

选择redhat版本
在这里插入图片描述
在这里插入图片描述

3.安装

1.linux系统上创建mysql1用户

useradd mysql1

2.将tar.gz包上传到服务器上并且解压

tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

3.将mysql-5.7.31-el7-x86_64目录下的文件mv到 /home/mysql1下

4.mkdir -p /home/mysql1/data 文件存储mysql1数据目录

mkdir -p /home/mysql1/data

5.将/etc/my.cfg文件复制到mysql家目录下

cp /etc/my.cnf /home/mysql1/

6.对/home/mysql1下赋权

chmod -R 755 /home/mysq1l
chown mysql:mysql -R /home/mysql1/data
chmod 777 /home/mysql1/data

7.修改mysql配置文件

vi /home/mysql1/my.cnf

[mysqld]
user                            = 
port                            = 3307
basedir                         = /home/mysql1
datadir                         = /home/mysql1/data
socket                          = /home/mysql1/mysql.sock
pid_file                        = /home/mysql1/mysql.pid
log_error                       = /home/mysql1/data/error.log
#binlog日志文件
log_bin                         = /home/mysql1/data/mysql-bin
relay_log                       = /home/mysql1/data/relay-bin
slow_query_log_file             = /home/mysql1/data/slow.log
#binlog过期清理时间
expire_logs_days                = 15
log-slave-updates               = 1
log_bin_trust_function_creators = 1
lower_case_table_names          = 1
max_connections                 = 3000
max_connect_errors              = 1000000 
# 每个实例的id都设置成不一样的,比如a主机,3307 b主机设置成23307,c主机设置成33307,后面1主2从会用到
server-id                       = 3307                              
autocommit                      = 1
# pool_size根据实际情况进行更新
innodb_buffer_pool_size         = 40G
innodb_buffer_pool_instances    = 8
innodb_write_io_threads         = 16
innodb_read_io_threads          = 16
#mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED
binlog_format                   = ROW
gtid_mode                       = on
enforce_gtid_consistency        = 1
innodb_flush_log_at_trx_commit  = 1  
#add 2                          
innodb_thread_concurrency       = 20
innodb_print_all_deadlocks      = 1
innodb_flush_method             = O_DIRECT
innodb_io_capacity              = 8000
innodb_io_capacity_max          = 15000
enforce_gtid_consistency        = 1
binlog_rows_query_log_events    = 1
character_set_server            = utf8mb4
default-storage-engine          = INNODB
transaction_isolation           = READ-COMMITTED
max_allowed_packet              = 67108864
event_scheduler                 = 1
slow_query_log                  = on
explicit_defaults_for_timestamp = 1   
master_info_repository          = TABLE
relay_log_info_repository       = TABLE
relay_log_recovery              = 1
relay_log_purge                 = 0  
slave_rows_search_algorithms    = 'INDEX_SCAN,HASH_SCAN'
slave_parallel_type             = LOGICAL_CLOCK
slave_parallel_workers          = 16
slave_preserve_commit_order     = 1
slave_transaction_retries       = 64
sync_relay_log                  = 0
sync_relay_log_info             = 0
sync_master_info                = 0
sync_binlog                     = 1
collation_server                = utf8mb4_bin
skip_name_resolve               = 1 
plugin-load                     = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled    = 1
rpl-semi-sync-slave-enabled     = 1

8.数据文件初始化

1.初始化

./mysqld --defaults-file=/home/mysql1/my.cnf --initialize --basedir=/home/mysql1 --datadir=/home/mysql1/data --user=mysql1

2.启动

./mysqld_safe --defaults-file=/home/mysql1/my.cnf --user=mysql1 &
查看mysql进程已经起来,并且监听3307接口
在这里插入图片描述

3.本机登陆,root的初始密码可以在errorlog中找到

cat error.log | grep "temporary password"
在这里插入图片描述

4.本机登录指定sock文件以及指定端口及输入临时密码

./mysql -uroot -P3307 -S /home/mysql1/mysql.sock -p

5. 登录后修改root密码

set password=password('XXXXXXXX'); 修改密码
flush privileges;

6. 赋予权限

grant all privileges on *.* to 'root'@'%' identified by 'XXXXXXX' with grant option;
flush privileges;

7. 停止服务

./mysqladmin shutdown -uroot -p******** -S /home/mysql1/mysql.sock

4.使用mysql客户端datagrip连接mysql成功

在这里插入图片描述

5.通过如上相同操作安装从库,只修改配置文件相关信息,并且初始化,并且客户端连接

在这里插入图片描述

6.在master数据库上执行

1.创建repl用户并且赋予同步权限

CREATE USER 'repl' IDENTIFIED BY 'slavepass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' identified by 'slavepass';
flush privileges;

在这里插入图片描述

2.查看master状态

SHOW MASTER STATUS\G;
在这里插入图片描述

7.在slave上面执行

1.配置slave从节点的master节点以及binlog偏移位置等

CHANGE MASTER TO MASTER_HOST='master地址',
MASTER_USER='repl',
MASTER_PASSWORD='slavepass',
MASTER_LOG_FILE='mysql-bin.000003', #为master的log_file
MASTER_LOG_POS=1597,       #master的POS
MASTER_PORT=3307;

在这里插入图片描述

2.启动slave同步进程以及查看slave状态

start slave;  #启动slave同步进程
show slave status\G;

在这里插入图片描述

8.测试

在mysql1中创建testdb,使用datagrip在mysql2中即可查看从mysql1中同步的新增的库以及数据,不过datagrip需要刷新下客户端。

,

9.总结主从部署

注意主从mysql的my.cnf配置文件的server-id必须配置不一样

k3s cpu load 和 cpu 使用率很高处理 在这期间还执行过缩减 sqlite3 数据库操作,不知道是哪个操作起了作用,亦或者两个操作有影响,删除 ns 促进了数据库缩减的执行(没删除之前数据库缩减不成功,db文件大小未减小,但不确定是不是执行完 VACUUM 之后需要时间 db 文件才会减小,或者是因为删除了 ns 才导致其减小),再或者是两个操作都起了作用。kubectl get ns 发现有很多卡在删除状态的 ns。k3s 官网关于这个问题的谈论。执行如下脚本删除掉这些 ns。有人详细说过这个问题。 阅读详情

相关推荐

金蝶云苍穹-插件开发(一)加载数据

此系列博客是进行金蝶云苍穹开发时的插件开发的教程,一是在明年要是还要参加软件杯金蝶A6赛题的话,可以看此系列教程的博客来进行复习,同时如果要是我实验室的学弟学妹要参加的话,我这个系列的博客可以给他们提供学习参考,因为插件开发学习的路上很艰难,我学习的时候,能参照的讲解少,要花费大量工夫去猜测去调试才能学会那些语法。在插件开发上,希望我这个系列的博客能帮助到别人。这个系列的博客只专门讲解插件开发,基本的那些金蝶云苍穹的知识点在这里不多作讲解。

二狗mao的博客 3587

MySQL一主多从配置

主从服务器配置完毕之后,在主服务器对应数据库上任意选择一条记录,进行修改,确认修改会自动同步到从服务器则说明配置完全成功。主服务器配置完毕,此刻开始不要再操作主服务器数据库,防止其状态值发生变化。执行同步命令,设置主服务器ip,同步账号密码,同步位置,两台机器分别执行。2、重启主服务器上的MySQL后,添加允许从服务器同步数据的账户。添加slave账号root,假设密码是123456。2、 重启从服务器上MySQL后执行主从同步命令。3、 查看主服务器状态。3、查看从服务器状态。

AAAAAxiaobai的博客 1178

Xilnx大学计划/XUP ZYNQ ZU开发板

TUL PYNQ™-ZU板,基于Xilinx Zynq UltraScale+ MPSoC,是为Xilinx大学项目设计的,以支持Xilinx PYNQ (Python Productivi-ty for Zynq)开源框架和嵌入式系统开发。

weixin_57025922的博客 947

MySQL配置一主多从

MySQL主从配置、一主多从

weixin_46062349的博客 217

别再死记硬背菜单了!用Workbench搞定你的第一个ANSYS结构分析(附模型文件)

本文为零基础用户提供使用ANSYS Workbench完成第一个结构分析的完整指南。通过悬臂梁案例详细讲解从几何导入、材料定义、网格划分到边界条件设置的全流程,帮助初学者快速掌握有限元分析的基本操作,并附赠实用模型文件。

weixin_34233974的博客 307

DFX从芯片到系统:可制造性、可测试性与可靠性设计实战指南

DFX(Design for eXcellence)是一套面向产品全生命周期的设计方法论,涵盖可制造性(DFM)、可测试性(DFT)、可靠性(DFR)等维度。其核心原理是将制造、测试、维护等环节的约束前置到设计阶段,从而降低流片与量产风险。在芯片与系统硬件领域,DFX不仅是提升良率与测试效率的关键手段,更是保障车规、工控等严苛场景下长期稳定运行的基础。从芯片物理实现到PCB布局,再到系统级散热与维护设计,DFX的落地需要工具链、流程闸门与跨部门协作的体系化支撑。本文基于实际项目经验,分享DFX从设计决策到工

weixin_32349093的博客 350

mysql一主一从,一主多从环境搭建及主从切换

mysql主从切换

weixin_46471797的博客 1289

树莓派与OpenCV实现人脸识别(OpenCV安装篇)

主要看了以下两位博客的文章完成的,也遇到了不少的坑,在这里一一填补说明。 链接: https://blog.youkuaiyun.com/weixin_42163073/article/details/107308759. 链接: https://blog.youkuaiyun.com/weixin_42573595/article/details/108526850. 树莓派与OpenCV实现人脸识别(OpenCV安装篇)一、材料准备:二、系统烧录三、安装OpenCV依赖项四、下载OpenCV-4.3.0五、为OpenCV配置P

weixin_45880057的博客 1万+

MySQL集群 - 一主多从、双主双从

在实际生产中,数据的重要性不言而喻。如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者崩溃,那么服务就不可用了。再比如这台服务器的硬盘坏了,那么整个数据库的数据就全部丢失了,这是重大的安全事故。为了避免服务的不可用以及保障数据的安全可靠性,我们至少需要部署两台或两台以上服务器来存储数据库数据,也就是我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障了,其他服务器依然可以继续提供服务。

Life And Code 2208

CentOS7 安装天气分型软件cost733过程详解

cost733是一款天气分型软件,其内置的一些算法可以帮助气象工作者进行天气类型划分等(我也是初学者,仅仅知道一些皮毛),但是网上找到的安装办法比较少,并且总会出现一些报错,试了一晚上,终于将安装办法调通了,希望可以帮助到大家

weixin_62573024的博客 3562

时间门控拉曼进展

拉曼光谱就像是用光给分子拍“指纹照”,通过激光照射样品,散射光会揭示样品的分子结构。但问题来了,样品有时会发荧光,就像拍照时闪光灯太亮,把指纹照模糊了。时间门控拉曼光谱技术就像加了个“快门”,只在拉曼信号出现的那一瞬间开门,把慢吞吞的荧光挡在门外,这样就能拍到清晰的“指纹”。

qq_53529450的博客 537

Mysql-主从架构篇(一主多从,半同步案例搭建)

从 MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式。GTID即全局事务ID (Global TransactionIdentifier),其保证每个主节点上提交的事务,在从节点可以一致性的复制。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。

qq_43259860的博客 3562

基于Jeecgboot3.9.0的文档管理系统(四)

基于Jeecgboot3.9.0的文档管理系统(四)

宁波阿成的博客 251

mysql一主多从 k8s部署实际案例

二、Java读写分离实现(Spring Boot示例)一、Kubernetes配置(MySQL主从集群)

weixin_45762066的博客 1047

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

k8s部署mysql一主多从集群

需求:master写,slave读。NFS映射mysql文件到本地,删除或重启pod或容器不会删除文件。

lucas5的博客 5747

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

kubernetes mysql多主_kubernetes使用StatefulSet部署mysql一主多从

kubernetes使用StatefulSet部署mysql一主多从有状态服务一般数据需要永久保存,先创建动态存储卷(这里存储使用nfs)rabc文件(base) [root@nlp-test-server-no ~]# cat nfs-rbac.yamlapiVersion: v1kind: ServiceAccountmetadata:name: nfs-client-provisionern...

weixin_39786706的博客 165

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Mysql 一主多备安装部署文档

Mysql 一主多备安装部署文档 文章目录Mysql 一主多备安装部署文档1 主节点配置1.1 my.cnf 配置1.2 配置同步账号1.3 授权同步账号1.4 授权远程登录1.5 刷新1.6 查看Master状态2 Slave节点配置2.1 my.cnf 配置2.2 设置Master2.3 查看slave状态3 数据同步测试3.1 测试数据3.2 Master数据3.2 Slave1同步数据3.3 Slave2 同步数据3.4 结论4 错误集锦4.1 Slave_IO_Running: Connect

大师兄你家猴跑啦的博客 427

Docker 部署 MySQL 一主多从

【代码】Docker 部署 MySQL 一主多从。

书启鸿蒙知秋枫 2334

docker部署mysql一主多从--主备复制模式

docker部署mysql一主多从–主备复制模式 根据实际安装的目录配置全局环境变量(root 用户执行) 如果已存在全局环境变量则无需配置 export LOCAL_IP=$(echo $(ip a | grep $(route -n | grep ^0.0.0.0 | awk '{print $8}') | grep "inet " | awk '{print $2}') | sed 's+/.*++') sudo tee -a /etc/profile << EOF export DEPL

csdnlaiyanqi的博客 1662

云原生|kubernetes|部署MySQL一主多从复制集群(基于Binlog+Position的复制)

让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。MySQL单实例的部署。附1:GTID的概念。主从复制报错排查示例。

zsk_john的技术分享专用博客 807

【K8S使用Helm部署MySQL一主多从并集成Prometheus监控】

本文基于 K8s 实验环境,采用 Helm 工具完成 MySQL 集群自动化部署。文中依次完成 Helm 安装、配置文件自定义、集群部署与状态校验等操作,保障集群稳定运行。同时结合 Prometheus 与 Grafana 组件搭建监控体系,完成监控实例接入与可视化面板配置,实现对 MySQL 集群运行状态、各项性能指标的实时观测。整套方案流程清晰、可落地性强,不仅提升了数据库部署与运维效率,也为云原生架构下 MySQL 集群的搭建、日常运维与故障排查提供了完整的实践参考

m0_63756214的博客 238

Ansible Playbook快速部署一主多从MySQL集群

原理很简单,但是其中涉及的关于操作MySQL的模块需要着重研究,还有关于template模板的用法也非常重要,在通过Ansible playbook部署一些更复杂的系统时,经常会用到使用template模板语法渲染不同的配置,实现更为复杂系统的部署。交互式配置,不输入即保持默认配置,如默认端口为3306,我自定义为33306,部署路径我自定义为/opt/software,其他的保持默认直接按回车。MySQL配置文件中的系统参数可以根据实际按需修改,以下配置只供参考,着重看一下文件中有标注的地方。

a...Z 1948

MySQL statefulset_kubernetes使用StatefulSet部署mysql一主多从

有状态服务一般数据需要永久保存,先创建动态存储卷(这里存储使用nfs)rabc文件(base)[root nlp-test-server-no~]#cat nfs-rbac.yamlapiVersion:v1kind:ServiceAccountmetadata:name:nfs-client-provisionernamespace:default---kind:ClusterRoleapiVe...

weixin_36202603的博客 250

CentOS 7 二进制部署 MySQL 5.7 配置一主多从架构

【代码】CentOS 7 二进制部署 MySQL 5.7 配置一主多从架构。

✦ 一个爱折腾服务器、沉迷写 Shell 脚本的 Linux 爱好者。 ✦ 每一篇教程都来自亲手搭建 + 反复验证,只为让你“一次成功”。 ✦ 相信技术的价值在于分享,也相信善意会传递。 ✦ 欢迎留言交流,有问必答(只要我会) 71

Ansible部署Mysql一主多从

1.centos7.9系统,一台主服务器,一台及以上从服务器(例子共4台服务器,一主三从)2.关闭防火墙和selinux3.解析服务器IP4.主服务器安装好mysql,ansible5.设置免密登陆从服务器。

2302_77404165的博客 734
上一篇: Linux之间ssh免密登录,以及ssh-copy-id命令
下一篇: scp通过后台执行(linux传输大文件终端会话超时)
Persistence___
博客等级 码龄8年 47粉丝 59原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值