当前位置: 首页 > news >正文

KubeSphere安装mysql8.4.0

背景

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

安装组件前提:已安装k8s集群,已经安装kubesphere,并且企业空间、项目已经创建。

1. 拉取镜像,并推送至私有registry

拉取镜像

ctr -n k8s.io images pull -all-platforms  hub.ccoc.eu.org/library/mysql:8.4.0-oraclelinux8

注意:–all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构
如果不加 --all-platforms 会出现ctr: content digest sha256:xxxxxx not found 的错误,要解决这个办法需要 pull 所有平台镜像。

tag(注意把“yourHarbor”替换成你自己的registry空间地址)

ctr -n k8s.io images tag   hub.ccoc.eu.org/library/mysql:8.4.0-oraclelinux8 registry.opsxlab.cn/library/mysql:8.4.0-oraclelinux8

push到私有registry(注意把“yourRegistry”替换成你自己的registry空间地址)

ctr -n k8s.io images  push  yourRegistry/library/mysql:8.4.0-oraclelinux8

或者导出镜像再上传到私有仓库。
导出

 ctr -n k8s.io images export --all-platforms  xxx.tar.gz  yourRegistry/library/mysql:8.4.0-oraclelinux8

导入

ctr -n k8s.io images import --all-platforms xxx.tar.gz

推送镜像

 ctr -n k8s.io images push    yourRegistry/library/mysql:8.4.0-oraclelinux8 -k

2. 部署MySQL服务

1.配置字典

首先在kubesphere上创建mysql的配置文件,用于对mysql进行一些自定义配置。
进入项目后,选择配置->配置字典,点击创建按钮,输入配置文件名称mysql-config、别名描述等;
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
字典名称: mysql-config
key: my.cnf
value:

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#skip-character-set-client-handshake
skip-name-resolve
# 设置不区分大小写
lower_case_table_names=1# 创建数据表时,默认使用的存储引擎
default-storage-engine=INNODB
# 附加的内存池,用来存储 InnoDB 表的内容
#innodb_additional_mem_pool_size=3M
# 置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上
innodb_flush_log_at_trx_commit=1
# 来存储日志数据的缓存区的大小
innodb_log_buffer_size=2M
# 缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据
innodb_buffer_pool_size=107M
# 日志文件的大小
innodb_log_file_size=54M
# 在 InnoDB 存储引擎允许的线程最大数
innodb_thread_concurrency=18# 默认使用“mysql_native_password”插件认证
#default_authentication_plugin=mysql_native_password# 回收空闲连接的时间
wait_timeout = 86400
# 允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
max_connections=100
# 数据库 写入的 数据包 最大值
max_allowed_packet = 512M
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10# 查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率
#query_cache_size=0
# 所有进程打开表的总数
#table_cache=256
# 内存中每个临时表允许的最大大小
tmp_table_size=35M
# 缓存的最大线程数
thread_cache_size=8
# MySQL 重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=100G
# 重建索引时的缓存大小
myisam_sort_buffer_size=69M
# 关键词的缓存大小
key_buffer_size=55M
# MyISAM 表全表扫描的缓存大小
read_buffer_size=64K
#将排序好的数据存入该缓存中
read_rnd_buffer_size=256K
#用于排序的缓存大小
sort_buffer_size=256K#开启binlog日志
#当前为单个节点,随机设置一个ID的值
server-id=1
log-bin=mysql-bin
binlog-format=Row
# 日志存储天数
#expire_logs_days=7
# 解决导入脚本时function报错问题
log_bin_trust_function_creators=1

在这里插入图片描述

2.创建保密字典

在这里插入图片描述
在这里插入图片描述

创建MYSQL_ROOT_PASSWORD值为123456
在这里插入图片描述

3.创建有状态副本集

3.1 选择有状态副本集

在这里插入图片描述

3.2 输入名称:mysql-8-4-0,点下一步

在这里插入图片描述

3.3 容器组设置

  • 输入镜像地址,注意:这里用私有registry上的地址,会显示“没有找到镜像”,不影响,可以继续往下操作
    在这里插入图片描述
  • 端口设置:
    • 协议选择TCP,名称:tcp-3306,容器端口:3306,服务端口:3306
    • 协议选择TCP,名称:tcp-33060,容器端口:33060,服务端口:33060

在这里插入图片描述

  • 勾选“环境变量”,键:MYSQL_ROOT_PASSWORD,值:选择创建的密码字典mysql-secert

  • 勾选“同步主机时区”,点确定(对号)及下一步
    在这里插入图片描述

3.4存储设置

  • 添加持久卷
    注意:因为截图的是测试环境,存储类只有local,生产环境是需要选择csi-nfs-sc之类的存储方式的。
    在这里插入图片描述
  • PVC名称前缀:mysql-pvc
  • 存出类选择csi-nfs-sc
  • 卷容量:1024G(根据实际需要)
  • 挂载路径:第一个下拉框选择“读写”,挂载路径:/var/lib/mysql
  • 点击确定
    在这里插入图片描述
  • 挂载配置字典或保密字典

在这里插入图片描述

  • 选在上面配置好的字典:mysql-confg
    在这里插入图片描述
  • 下拉框选择“只读”,挂载路径:/etc/mysql/conf.d

在这里插入图片描述

  • 选择特定键,选择my.cnf,值也为my.cnf,然后点击,再点下一步,最后直接点击创建
    在这里插入图片描述

在这里插入图片描述

3. 创建服务

  • 点击创建,选择“指定工作负载”

在这里插入图片描述

  • 输入名称:mysql-svc-nodeport,点下一步
    在这里插入图片描述
    在这里插入图片描述
  • 端口:协议选择“HTTP”,容器端口:3306,服务端口:3306,点击下一步

在这里插入图片描述

  • 勾选“外部访问”,访问模式下拉选择“NodePort”,点击创建

在这里插入图片描述

  • 点击在服务的“…”,选择“编辑YAML”,把nodePort修改为需要的端口,用于外部访问。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4. 访问测试

打开navcat,输入任意节点的ip和mysql外部服务的端口,点击测试,连接成功

在这里插入图片描述

相关文章:

KubeSphere安装mysql8.4.0

背景 KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。 安装组件前提&am…...

SpringBoot项目热部署-devtools

DevTools 会使用两个类加载器&#xff08;一个用于加载不变的类&#xff0c;一个用于加载可能会变化的类&#xff09;&#xff0c;每次重启只重新加载管理变化的类的加载器&#xff0c;因此会快很多 1.导入依赖 <dependency> <groupId>org.springframework.boot&l…...

从MySQL到OceanBase离线数据迁移的实践

本文作者&#xff1a;玉璁&#xff0c;OceanBase 生态产品技术专家。工作十余年&#xff0c;一直在基础架构与中间件领域从事研发工作。现负责OceanBase离线导数产品工具的研发工作&#xff0c;致力于为 OceanBase 建设一套完善的生态工具体系。 背景介绍 在互联网与云数据库技…...

ifconfig 和 ip addr

1. 工具所属套件 ifconfig&#xff1a;属于较老的 net-tools 套件。曾是 Unix 和 Linux 系统上广泛使用的工具。ip addr&#xff1a;属于较新的 iproute2 套件。它取代了 ifconfig&#xff0c;并逐渐成为现代 Linux 系统上更常用的工具。 2. 功能覆盖范围 ifconfig&#xff…...

NCCL报错

1、报错信息&#xff1a; raise RuntimeError("Distributed package doesnt have NCCL " "built in") RuntimeError: Distributed package doesnt have NCCL built in 2、报错原因&#xff1a; windows系统不支持nccl&#xff0c;采用gloo&#xff1b; …...

域7:安全运营 第16章 安全运营管理

第七域包括 16、17、18、19 章。 第七域所涵盖的广泛知识点&#xff0c;与我们的安全运营工作之间存在着高度的契合性。这些知识点不仅为我们的安全运营提供了有力的理论支撑&#xff0c;还使得SOC&#xff08;安全运营中心&#xff09;在日常运作中能够更加高效地发挥作用。通…...

研发线上事故风险解读之数据库存储

专业在线打字练习平台-巧手打字通&#xff0c;只输出有价值的知识。 一 前言 本文继续基于《线上事故案例集》&#xff0c;进一步深入梳理线上事故数据存储方面的问题点&#xff0c;重点关注数据库存储在使用和优化过程中可能出现的问题&#xff0c;旨在为读者提供具有实践指导…...

react hooks中在setState后输出state为啥没有变化,如何解决

在 React Hooks 中&#xff0c;setState 的概念被 useState 或 useReducer 钩子所替代。与类组件中的 setState 一样&#xff0c;这些钩子也是异步更新状态的。因此&#xff0c;如果你尝试在调用 setState&#xff08;即 setXXX 函数&#xff09;后立即读取状态值&#xff0c;你…...

C++设计模式——代理模式

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言代理模式的定义代理模式的具体实现 引言 我们经常听到代理服务器「代理服务器是一个中间服务器&#xff0c;能够接收客户端的请求&#xff0c;并代表客户端向服务器发起请求&#xff0c;然后将服…...

docker 复制文件,清除不再使用数据导出以及导出文件系统

docker cp -a centos :/etc/centos-release #将容器内文件复制到宿主机 docker cp /etc/issue centos:/root #将宿主机文件复制到容器内 docker export&#xff1a; 将一个运行的或者挺值得容器的文件系统导出为一个tar归档文件。需要注意&#xff0c;docker export 不会包含该…...

【Vue】Vue3.0(十一)Vue 3.0 中 computed 计算属性概念、使用及示例

上篇文章&#xff1a;【Vue】Vue3.0&#xff08;十&#xff09;toRefs()和toRef()的区别及使用示例 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Vue专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年10月15日10点23分 文章目录 Vue 3.0中…...

【第三版 系统集成项目管理工程师】第17章 法律法规和标准规范

持续更新。。。。。。。。。。。。。。。 【第三版】第17章 法律法规和标准规范 17.1法律法规17.1.1 法与法律 P5801.基本概念-P5802.本质与特征-P580 17.1.2 法律体系1.世界法律体系(非重点)-P5802.中国特色社会主义法律体系-P581 17.1.3 法的效力1.对象效力-P5822.空间效力-…...

安装 LLM 编程工具 cursor

1&#xff0c;网址 cursor.com 点击 Download for Free 下载安装包 下载到一个300KB的安装压缩包&#xff0c;解压后双击后&#xff0c;点 open 安装过成会下载真正的应用程序 点击 continue 登陆 比如选择使用 github账号登陆 则会弹出如下网页&#xff1a; 先登陆 github&a…...

Java链式编程的定义、例子、使用方法、实际应用场景、自动装配构造

链式编程&#xff08;Fluent Interface&#xff09;是一种编程风格&#xff0c;允许通过方法调用连接在一起进行操作&#xff0c;通常用于提高代码的可读性和简洁性。在 Java 中&#xff0c;链式编程常通过返回 this&#xff08;当前对象&#xff09;来实现。这种做法在构建器模…...

用 Git Stash 临时保存修改,轻松切换任务!

在开发过程中&#xff0c;我们经常会遇到这样的情况&#xff1a;正在写代码&#xff0c;突然领导或同事让你赶紧处理一个紧急 bug&#xff0c;但你当前的代码还没写完&#xff0c;不能提交&#xff0c;这时候该怎么办呢&#xff1f;别慌&#xff0c;Git 的 stash 命令正好能帮上…...

Android 下通过触发 SIGTRAP 信号实现反调试

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 详细的 Linux 信号列表 Linux 信号是一种用于进程间通信&#xff08;IPC&#xff09;和异常处理的机制。以下是详细的 Linux 信号列表&#xff0c;包含信号名…...

【MySQL】 表的增删操作

目录 1.Create&#xff08;增&#xff09; 1.1.单行数据 全列插入 1.2.多行数据 指定列插入 1.3.插入否则更新 1.4.替换数据&#xff08;REPLACE&#xff09; 2.Delete&#xff08;删&#xff09; 2.1.删除表中的某个条目 2.2.删除整张表数据 2.3.截断表 1.Create…...

新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?

随着生物信息学在科研和教育中的快速普及&#xff0c;越来越多的新生开始接触基因组测序、RNA分析等复杂计算任务。然而&#xff0c;在面对这些大规模数据时&#xff0c;个人电脑的算力往往显得捉襟见肘。你是否也在为自己的笔记本性能不足而苦恼&#xff1f; 这篇文章将为你提…...

20255 - 中医方剂学 - 考研 - 执业

第1章 总论 1.我国现存最早的记载方剂的医书是&#xff08;&#xff09;( ) [单选] A.《太平圣惠方》 B.《黄帝内经》 C.《五十二病方》 D.《千金要方》 E.《外台秘要》 正确答案: C 2.我国最早的中医经典理论著作是&#xff08;&#xff09;( ) [单选] A.《伤寒杂病论…...

【Vue.js设计与实现】第三篇第9章:渲染器-简单Diff算法-阅读笔记

文章目录 9.1 减少 DOM 操作的性能开销9.2 DOM 复用与 key 的作用9.3 找到需要移动的元素9.4 如何移动元素9.5 添加新元素9.6 移除不存在的元素 系列目录&#xff1a;【Vue.js设计与实现】阅读笔记目录 当新旧vnode 的子节点都是一组节点时&#xff0c;为了以最小的性能…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...