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-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南