CREATE TABLE student_score (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,score DECIMAL(5,1) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
CREATE TABLE student_score (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,score DECIMAL(5,1) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
192.168.12.161,read_only,xxxxxx192.168.12.162,read_only,xxxxxx
CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,description TEXT,price DECIMAL(10,2) NOT NULL,stock INT NOT NULL,production_date DATE,expiry_date DATE);
CREATE TABLE `t1` (`id` int NOT NULL AUTO_INCREMENT,`a` varchar(20) DEFAULT NULL,`b` int DEFAULT NULL,`c` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)) ENGINE=InnoDB CHARSET=utf8mb4 ;
create table class_info_01(id int,name varchar(10));
xtrabackup --defaults-file=/data/mysql/conf/my.cnf -uu_backup -p'Ujg8G_aUU' --backup --stream=xbstream --target-dir=./ >/data/backup/xtrabackup.xbstream
// This file is auto-generated, don't edit it. Thanks.package mainimport ("fmt"openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"rds20140815 "github.com/alibabacloud-go/rds-20140815/v3/client"util "github.com/alibabacloud-go/tea-utils/v2/service""github.com/alibabacloud-go/tea/tea""os")/*** 使用AK&SK初始化账号Client* @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/func CreateClient (accessKeyId *string, accessKeySecret *string) (_result *rds20140815.Client, _err error) {config := &openapi.Config{// 必填,您的 AccessKey IDAccessKeyId: accessKeyId,// 必填,您的 AccessKey SecretAccessKeySecret: accessKeySecret,}// Endpoint 请参考 https://api.aliyun.com/product/Rdsconfig.Endpoint = tea.String("rds.aliyuncs.com")_result = &rds20140815.Client{}_result, _err = rds20140815.NewClient(config)return _result, _err}func _main (args []*string) (_err error) {// 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378661.htmlclient, _err := CreateClient(tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")))if _err != nil {return _err}describeSlowLogRecordsRequest := &rds20140815.DescribeSlowLogRecordsRequest{DBInstanceId: tea.String("rm-uf6img56ru4l61963"),StartTime: tea.String("2023-09-04T02:00Z"),EndTime: tea.String("2023-09-04T03:00Z"),}runtime := &util.RuntimeOptions{}tryErr := func()(_e error) {defer func() {if r := tea.Recover(recover()); r != nil {_e = r}}()// 调用API并获取返回结果response, _err := client.DescribeSlowLogRecordsWithOptions(describeSlowLogRecordsRequest, runtime)if _err != nil {return _err}// 打印API的输出结果fmt.Println(response)return nil}()if tryErr != nil {var error = &tea.SDKError{}if _t, ok := tryErr.(*tea.SDKError); ok {error = _t} else {error.Message = tea.String(tryErr.Error())}// 如有需要,请打印 error_, _err = util.AssertAsString(error.Message)if _err != nil {return _err}}return _err}func main() {err := _main(tea.StringSlice(os.Args[1:]))if err != nil {panic(err)}}
上面代码,是通过阿里云API获取慢查询,创建一个Go项目
需要包括完整的代码,并且分成多个文件夹
比如service、repository、model、config、cmd这些文件夹
cmd中包括main.go
config中包括获取配置文件的代码
model 定义慢查询的结构体
repository 放慢查询写入数据库的代码
service 从阿里云获取慢查询
config.yaml 配置文件,可以配置DBInstanceID,数组模式。还可以配置存放慢查询的数据库连接信息
写入数据库的字段包括
"DBName": "martin",
"ExecutionStartTime": "2023-09-04T02:21:54Z",
"HostAddress": "martin_rw[martin_rw] @ [10.152.163.197]",
"LockTimes": 0,
"ParseRowCounts": 1,
"QueryTimeMS": 4000,
"QueryTimes": 4,
"ReturnRowCounts": 1,
"SQLHash": "3227cd26653a98dd94a76f1bc58f0880",
"SQLText": "/* Query from DMS-WEBSQL-0-Qid_28919350597280378C by user 1360627127365188 */ select sleep(4),version()"
以及DBInstanceId
给出具体代码
文章转载自MySQL数据库联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




