CentOS 7 和 Go 语言基础
CentOS 7 和 Go 语言基础
第1课:CentOS 7 和 Go 语言基础
1. CentOS 7 基础操作和配置
CentOS 7 是一个广泛使用的企业级操作系统,以其稳定性和安全性而闻名。在本节中,我们将学习一些基本的操作和配置命令,包括:
系统更新:
sudo yum update
- 更新所有已安装的软件包到新版本。安装新软件:
sudo yum install [package_name]
- 使用 YUM 包管理器安装新软件。网络配置:编辑
/etc/sysconfig/network-scripts/ifcfg-enp0s3
文件来配置网络设置。防火墙管理:使用
firewall-cmd
命令管理防火墙设置。系统服务管理:使用
systemctl
命令启动、停止、重启服务。
2. 安装 Go 语言环境
Go 语言(又称 Golang)是一个开源编程语言,使得可以轻松构建简单、可靠、高效的软件。为了在 CentOS 7 上安装 Go 语言,我们需要执行以下步骤:
启用 EPEL 仓库:
sudo yum install epel-release
- 为更多软件包提供支持。安装 Go:
sudo yum install golang
- 安装 Go 语言。设置环境变量:编辑
~/.bash_profile
,添加export PATH=$PATH:/usr/local/go/bin
,然后执行source ~/.bash_profile
。
3. 开发和运行第一个 Go 程序
开发第一个 Go 程序是了解语言基础的重要步骤。我们将创建一个简单的 “Hello World” 程序。
创建程序:在
~/go/src/helloworld
目录下,创建main.go
。编写代码:使用文本编辑器输入 Go 程序,例如使用
echo 'package main; import "fmt"; func main() { fmt.Println("Hello, World!") }' > main.go
。编译程序:
go build main.go
- 这会在当前目录下创建一个可执行文件。运行程序:
./main
- 执行程序并查看输出。(可选)将程序移动到
/usr/bin
:sudo mv main /usr/bin/helloworld
- 这样你可以从任何位置运行程序。
通过这些步骤,您将学会如何在 CentOS 7 上配置环境,安装和运行 Go 程序,为更高级的开发和管理任务打下基础。
这个程序是用 Go 语言编写的,主要用于检测和解除 MySQL 数据库中的锁定事务。它定期查询数据库,检查是否存在因锁定而等待的事务,并尝试解除这些锁定。执行界面如下:
以下是主要功能 和掌握的知识:
主要功能
配置解析和输入提示:通过命令行参数或用户输入,脚本接收数据库连接信息(如地址、端口、用户、密码)和执行间隔。
数据库连接:使用 MySQL 驱动连接到 MySQL 数据库。
定时任务:按照设定的时间间隔执行任务。
检查锁定的事务:查询
information_schema
表来找出当前正在等待和阻塞的事务。解除锁定:通过发送
KILL QUERY
命令来尝试解除阻塞事务的锁定。日志记录:记录操作过程中的关键信息和任何可能的错误。
交互式停止:等待用户输入以停止定时任务和脚本。
能够学到到知识
Go语言基础:包引入、类型定义、函数等语言特性
数据库操作:sql包的使用,连接MySQL,执行查询和更新
命令行解析:flag包,获取命令行参数
定时任务:time包,Ticker实现定期执行
MySQL锁机制:了解InnoDB行锁,从information_schema获取锁信息
事务操作:用KILL QUERY语句终止锁等待事务
错误处理:错误Wrapping
代码组织:合理的包和函数组织
总的来说,开发这个脚本的人需要具备 Go 语言编程和基本的数据库操作知识,特别是在 MySQL 环境下的知识。此外,对于命令行工具的开发经验也是必需的。
这个命令提供了两种主要的执行方法:命令行参数执行和交互式执行。下面详细解释这两种方法:
命令行参数执行
用户可以在启动脚本时通过命令行提供所有必要的配置参数。这种方法适用于熟悉命令行操作的用户,或者当您希望将脚本部署为自动化任务时。参数包括数据库地址、端口、用户名、密码和任务执行间隔。
命令行参数如下:
--address
: 数据库地址(例如:"127.0.0.1")--port
: 数据库端口(例如:"3306")--user
: 数据库用户名--password
: 数据库密码--interval
: 执行间隔(例如:"30s", "1m", "3m", "5m")
示例命令行执行:
./mysqlkill --address "127.0.0.1" --port "3306" --user "root" --password "yourpassword" --interval "1m"
交互式执行
如果在启动脚本时没有通过命令行提供足够的参数,脚本将进入交互式模式。在这种模式下,程序会提示用户依次输入所需的配置信息,如数据库地址、端口、用户名、密码和执行间隔。这种方法对于不熟悉命令行或者偏好逐一输入配置信息的用户来说更友好。
交互式模式的执行不需要在命令行中预先输入任何参数,只需直接运行编译后的程序:
./mysqlkill
然后按照程序提示输入所需的配置信息。
这两种执行方法提供了灵活性,使得不同技能水平的用户都能方便地使用这个脚本。命令行参数执行适合自动化和高级用户,而交互式执行则为初级用户和那些偏好逐步指导的场景提供便利。
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
课程大纲