golang mysql 客户端
2021/10/14 19:17:09
本文主要是介绍golang mysql 客户端,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
...
使用mysql 客户端的正确姿势,解决一堆 3306 time_wait的问题
package dbs import ( "database/sql" "fmt" "log" "time" _ "github.com/go-sql-driver/mysql" ) var MysqlDb *sql.DB var MysqlDbErr error const ( USER_NAME = "root" PASS_WORD = "123456" HOST = "localhost" PORT = "3306" DATABASE = "hudb" CHARSET = "utf8" ) // 初始化链接 func init() { dbDSN := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s", USER_NAME, PASS_WORD, HOST, PORT, DATABASE, CHARSET) // 打开连接失败 MysqlDb, MysqlDbErr = sql.Open("mysql", dbDSN) //defer MysqlDb.Close(); if MysqlDbErr != nil { log.Println("dbDSN: " + dbDSN) panic("数据源配置不正确: " + MysqlDbErr.Error()) } // 最大连接数 MysqlDb.SetMaxOpenConns(100) // 闲置连接数 MysqlDb.SetMaxIdleConns(20) // 最大连接周期 MysqlDb.SetConnMaxLifetime(100 * time.Second) if MysqlDbErr = MysqlDb.Ping(); nil != MysqlDbErr { panic("数据库链接失败: " + MysqlDbErr.Error()) } } // 用户表结构体 type User struct { Id int64 `db:"id"` Name string `db:"name"` } // 查询数据,指定字段名 func StructQueryField() { user := new(User) row := MysqlDb.QueryRow("select id, name from tb1 where id=?", 1) if err := row.Scan(&user.Id, &user.Name); err != nil { fmt.Printf("scan failed, err:%v", err) return } fmt.Println(user.Id, user.Name) MysqlDb.Close() row1 := MysqlDb.QueryRow("select id, name from tb1 where id=?", 1) if err := row1.Scan(&user.Id, &user.Name); err != nil { fmt.Printf("scan failed, err:%v", err) return } fmt.Println(user.Id, user.Name) }
这篇关于golang mysql 客户端的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南