1. MySQL 介绍 2. 常用 MySQL 命令 3. 环境变量 3.1. 可自定义的环境变量 3.1.1. 只读环境变量 4. 快速部署单实例 5. 主从群集 5.1. 步骤 1:创建复制主服务器 5.2. 步骤 2:创建复制从属 5.3. docker-compose 部署 5.4. 主从常用命令 6. mysql 权限问题 7. 参考文档 基于 bitnami/mysql 的文档 1. MySQL 介绍 MySQL是一个快速、可靠、可扩展且易于使用的开源关系数据库系统。专为处理任务关键型重载生产应用而设计。 2. 常用 MySQL 命令 # 查看 MySQL 版本信息 SELECT VERSION(); # 查看当前连接的用户和主机信息 SELECT USER(), CURRENT_USER(), @@hostname; # 查看 MySQL 服务器启动时间 SHOW GLOBAL STATUS LIKE 'Uptime'; # 查看 MySQL 服务器当前运行的线程数 SHOW GLOBAL STATUS LIKE 'Threads_running'; # 查看 MySQL 数据库中当前可用的存储引擎 SHOW ENGINES; # 查看 MySQL 数据库中当前正在运行的进程 SHOW PROCESSLIST; # # 查看帐号列表 SELECT User, Host FROM mysql.
1. 环境信息 CentOS7 x86_64 kubeadm-v1.20.15 golang-v1.15.15 2. Golang 环境安装 国内推荐使用下载网:https://studygolang.com/dl # 创建目录 mkdir -p /opt/src # 下载 golang wget https://studygolang.com/dl/golang/go1.15.15.linux-amd64.tar.gz # 解压到 /usr/local 目录 tar -zxvf go1.15.15.linux-amd64.tar.gz -C /usr/local/ # 查看 go 目录 ls -l /usr/local/go 设置 GOPATH、GOROOT、GOBIN 目录 # vim ~/.bashrc # 设置 GO 安装目录 export GOROOT=/usr/local/go # 设置 gopath export GOPATH=/opt/gopath # 设置 gobin export GOBIN=$GOPATH/bin # 设置代理 export GO111MODULE=on export GOPROXY=https://goproxy.cn # # 加入PATH export PATH=$PATH:$GOROOT/bin:$GOBIN # 使其生效 source ~/.
1. ping 遍天下 # windows 默认ping 3次 ping www.github.com # linux 默认无限次数 ping www.github.com # 限制次数 ping -c 3 www.github.com # 指定 ping 数据包的大小 ping -s 10240 -c 3 www.github.com # 指定 ping 时间间隔,默认1秒一次 ping -i 0.1 -c 100 www.github.com # 快速产生大量的 ping,一般用于测试网卡的丢包率 ping -f -c 1000 www.github.com 分析结果 # ping -c 3 www.github.com PING github.com (20.205.243.166) 56(84) bytes of data. 64 bytes from 20.205.243.166 (20.205.243.166): icmp_seq=1 ttl=110 time=125 ms 64 bytes from 20.
1. .1. ssh-agent 简介 2. .2. 原理图 3. .3. 生成密钥对 4. .4. 开启 ssh-agent 5. .5. ssh-add 管理密钥 5.1. .5.1. 添加 5.2. .5.2. 查看 5.3. .5.3. 删除 6. .6. 复制公钥 7. .7. ssh 免密连接 8. .8. 终结 ssh-agent 9. 自动化 10. DEBUG 1. .1. ssh-agent 简介 ssh-agent 是一个用于管理 SSH 密钥的认证代理,它可以在一段时间内缓存您的私钥,使得在此期间内无需重复输入密码即可进行 SSH 连接。下面是关于 ssh-agent 的优缺点: 优点: 方便性:ssh-agent 可以让用户在一定时间内轻松地管理和使用他们的 SSH 密钥,而无需反复输入密码。 安全性:通过 ssh-agent,用户可以将私钥保存在内存中而不是硬盘上,从而减少私钥被恶意获取的风险。 自动化:对于脚本或其他自动化操作,ssh-agent 可以让您无需人工干预即可进行安全的 SSH 连接。 缺点: 安全性考量:尽管 ssh-agent 提高了私钥的安全性,但一旦攻击者获得了对系统的完全控制权限,仍然可能访问到内存中的私钥。 生命周期管理:ssh-agent 中缓存的密钥在一定时间内保持有效,这可能会导致一些安全隐患,特别是在共享计算机上使用时。
.1. 什么是 ccze ccze 是 Linux 一个用于彩色化日志文件输出的工具。它可以将文本文件中的日志内容进行颜色标记,以提高可读性。 .2. 安装 # 对于Debian/Ubuntu系统 sudo apt-get install ccze # 对于CentOS/RHEL系统 sudo yum install ccze .3. 使用 -A 选项用于启用ANSI颜色代码 cat nginx.log |ccze -A cat nginx.log |ccze -A | more journalctl -xeu docker|ccze -A|more docker logs xxx |ccze 导出 HTML cat /var/log/messages |ccze -h > ~/messages.html .4. 参考 https://www.cnblogs.com/flashfish/p/11230141.html https://lintut.com/colorize-log-files-on-linux-using-ccze-tool/
.1. 为什么安装 WSL .2. 安装 WSL .3. 配置优化 .4. 安装基础软件 .5. 参考 .1. 为什么安装 WSL 如果你的操作系统是 windows 系列则有必须了解一下 WSL,对于开发者来说必备的工具。 Windows Subsystem for Linux(简称WSL)是微软开发的一种允许在Windows操作系统上运行Linux二进制可执行文件(ELF格式)的兼容层。WSL将Linux内核的子系统嵌入到Windows中,使得用户可以在Windows环境中使用Linux工具、命令和应用程序。 WSL的主要特点包括: 全面兼容性:WSL提供了高度兼容的Linux系统调用接口,可以运行大多数基于Linux的工具和应用程序,无需进行修改或重新编译。 轻量化和快速启动:WSL只需要很小的资源开销,并且可以在几秒钟内启动。这使得在Windows系统上使用Linux工具和应用程序变得更加便捷。 文件系统互通:WSL可以访问Windows文件系统,并且Windows和Linux之间的文件共享也变得非常容易。用户可以在Windows和Linux之间方便地共享文件和目录。 命令行工具:WSL支持使用各种命令行工具,如Bash、Zsh、Fish等,提供了丰富的Shell环境和命令行工具集。 自定义配置和扩展:WSL允许用户自定义Linux发行版,并且可以通过安装各种软件包来扩展功能。用户可以选择安装适合自己需求的发行版,并根据需要进行自定义配置。 使用WSL可以带来许多好处,例如在Windows环境中开发和运行Linux软件、使用Linux命令行工具和脚本、学习和测试Linux等。WSL目前有两个主要版本,即WSL 1和WSL 2,用户可以根据自己的需求选择适合自己的版本。 总之,WSL为Windows用户提供了与Linux系统无缝集成的能力,使得在Windows环境下使用Linux变得更加方便和灵活。 .2. 安装 WSL # 打开PowerShell作为管理员,执行以下命令,以启用WSL特性 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 然后,执行以下命令以启用虚拟机平台: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 更新 WSL https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 将WSL 2设置为默认版本: wsl --set-default-version 2 安装最新的 Ubuntu 最新发行版本: wsl --install # 一会需要设置帐号和密码 将安装的 ubuntu 设置默认系统
.1. 什么是 Firewalld Firewalld 是一个在 Linux 系统上提供动态防火墙管理的工具。它是一个用户和管理员友好的前端,用于配置和管理 iptables 规则,并提供了一种简化的方式来管理网络连接和保护系统免受未经授权的访问。 Firewalld 的主要特点包括: 基于区域的防火墙:Firewalld 将网络接口划分为不同的区域,例如公共区域、内部区域和信任区域。每个区域都有其自己的安全策略和规则集。 动态更新规则:Firewalld 允许实时添加、删除和修改防火墙规则,而无需重启防火墙服务或中断网络连接。 服务和应用程序级别的访问控制:Firewalld 允许根据服务或应用程序的名称来控制网络访问权限,而不仅仅是基于端口号。 高级网络管理功能:Firewalld 支持网络地址转换(NAT)、端口转发、IPSec 和 IPv6 等高级网络功能。 兼容性和扩展性:Firewalld 可以与其他网络管理工具和服务集成,如 NetworkManager 和 SELinux。 使用 Firewalld,管理员可以轻松地配置和管理系统的防火墙设置,保护系统免受恶意网络活动和未经授权的访问。它提供了一种灵活且强大的方式来管理网络连接,并根据实际需求进行定制配置。 需要注意的是,Firewalld 本身并不是防火墙,而是一个防火墙管理工具。 .2. 工作原理 Firewalld 的工作原理可以简要概括如下: 区域和服务定义:Firewalld 使用预定义的区域和服务来管理网络连接和访问控制。区域定义了特定接口的安全策略,而服务定义了允许的网络服务和端口。 运行时状态:Firewalld 在运行时维护一个状态,以跟踪网络连接和防火墙规则的变化。它监视网络接口上的数据包流量,并根据规则进行决策。 防火墙规则集:Firewalld 根据配置文件中定义的防火墙规则集来处理传入和传出的数据包。规则可以基于源 IP、目标 IP、源端口、目标端口等条件进行匹配,并决定是允许还是拒绝数据包。 动态更新:Firewalld 允许在运行时动态地添加、删除和修改防火墙规则,而无需重启防火墙服务或中断网络连接。这使得管理员可以实时地对网络连接进行调整和控制。 网络地址转换(NAT)和端口转发:Firewalld 支持配置网络地址转换(NAT)和端口转发规则,以便将数据包从一个网络接口转发到另一个接口或端口。 D-Bus 接口:Firewalld 提供了一个 D-Bus 接口,使其他应用程序和工具可以与其交互并管理防火墙设置。 Firewalld 是通过定义防火墙规则最终交由内核的 netfilter 进行包过滤实现防火墙功能。 .3. 架构图 以下是官方给出的架构图,https://firewalld.org/documentation/architecture.html Firewalld 是一个复杂的系统,包含了多个组件和模块来实现其功能。以下是关于每个组件的简要介绍: 前端组件: firewall-cmd:firewall-cmd 是 Firewalld 的命令行前端工具,用于管理和配置防火墙规则、区域、服务等。 firewall-config:firewall-config 是一个图形化的前端工具,提供了一个易于使用的界面来配置和管理防火墙设置。 firewall-applet:firewall-applet 是 Firewalld 的系统托盘应用程序,可以在系统托盘中显示防火墙状态,并提供快速访问配置选项的功能。 firewall-offline-cmd:firewall-offline-cmd 是一个离线命令行工具,用于在没有网络连接的情况下配置和管理防火墙规则。 核心组件:
1. 什么是 Chrony Chrony 是一款用于时钟同步的程序,它可以通过网络协议(如 NTP、UDP)与外部时间源进行通信,从而使本地系统的时钟与参考时钟保持同步。相比其他时钟同步程序,Chrony 具有更高的精度和更好的稳定性,特别适用于在网络不稳定或移动设备上使用。 以下是 Chrony 的一些主要特点: 渐进式时钟调整:Chrony 通过缓慢地调整时钟频率和偏移量来避免大幅度调整引起的系统不稳定性。 时钟纠正算法:Chrony 使用一种称为 MLE(Maximum Likelihood Estimation)的算法来计算时钟偏移量和频率误差,从而提高时钟同步的准确性和稳定性。 无需 root 权限:Chrony 可以在普通用户下运行,并且不需要 root 权限。 安全性:Chrony 支持加密和身份验证,以防止恶意攻击和数据篡改。 网络适应性:Chrony 可以根据网络延迟和时钟偏移量自适应地选择最佳的时间源。 相比 NTP 更加精准好用。推荐使用 Chrony。 总的来说,Chrony 是一款功能强大、精度高、稳定性好、安全性高的时钟同步程序,广泛用于各种 Linux 和 Unix 系统中。 2. 安装 # CentOS yum -y install chrony # Ubuntu apt -y install chrony # 开启 systemctl enable chronyd systemctl start chronyd 3. chrony.conf 配置 需要关注以下项: 设置时间源: server 设置权限: allow # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。 # Use public servers from the pool.
1. 查看 Release # 查看当前 Default 命名空间下的 Release helm ls # 查看所有命名空间下的 Release helm ls -A # 查看指定命名空间下的 Release helm ls -n <namespace> # 查看状态 helm status <release-name> # 卸载 helm delete <release-name> 2. 部署 helm install <release-name> <helm-Repository> -f values.yaml helm install <release-name> <helm-Repository> --set name=xxx -f values.yaml 3. 仓库 helm - 针对Kubernetes的Helm包管理器 helm repo add - 添加chart仓库 helm repo index - 基于包含打包chart的目录,生成索引文件 helm repo list - 列举chart仓库 helm repo remove - 删除一个或多个仓库 helm repo update - 从chart仓库中更新本地可用chart的信息 # 搜索 helm search hub redis # 搜索官网上的资源 helm search repo redis # 搜索本地添加的仓库资源 # 搜索更多版本列表 helm search repo -l metrics-server/metrics-server # 下载指定版本,CHART VERSION helm search repo metrics-server/metrics-server --version 3.
1. 介绍 Chart 模板才是 Helm 的灵魂所在,学会模板才算入门 Helm,让我们一起学习吧. 2. 模板语法 模板命令要括在 {{ 和 }} 之间。 如: apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-configmap data: myvalue: "Hello World" 3. 内置对象 系统自带一些内置对象,可以在模板里使用. Release: Release对象描述了版本发布本身。包含了以下对象: Release.Name: release名称 Release.Namespace: 版本中包含的命名空间(如果manifest没有覆盖的话) Release.IsUpgrade: 如果当前操作是升级或回滚的话,该值将被设置为true Release.IsInstall: 如果当前操作是安装的话,该值将被设置为true Release.Revision: 此次修订的版本号。安装时是1,每次升级或回滚都会自增 Release.Service: 该service用来渲染当前模板。Helm里始终Helm Values: Values对象是从values.yaml文件和用户提供的文件传进模板的。默认为空 Chart: Chart.yaml文件内容。 Chart.yaml里的所有数据在这里都可以可访问的。比如 {{ .Chart.Name }}-{{ .Chart.Version }} 会打印出 mychart-0.1.0 Files: 在chart中提供访问所有的非特殊文件的对象。你不能使用它访问Template对象,只能访问其他文件。 请查看这个 文件访问部分了解更多信息 Files.Get 通过文件名获取文件的方法。 (.Files.Getconfig.ini) Files.GetBytes 用字节数组代替字符串获取文件内容的方法。 对图片之类的文件很有用 Files.Glob 用给定的shell glob模式匹配文件名返回文件列表的方法 Files.