From 8af13f9163a1a72246b08b8d29beb43b84101a32 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 18 Jul 2024 00:51:24 +0800 Subject: [PATCH] connect mysql over --- go.mod | 5 +++++ go.sum | 4 ++++ mysql/golangconnectmysql.go | 29 +++++++++++++++++++++++++++++ mysql/mysql.log | 10 +++++++++- 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 go.sum create mode 100644 mysql/golangconnectmysql.go diff --git a/go.mod b/go.mod index 8eb04f1..5c55d37 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,8 @@ module course go 1.22 + +require ( + filippo.io/edwards25519 v1.1.0 // indirect + github.com/go-sql-driver/mysql v1.8.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..19dbcec --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= diff --git a/mysql/golangconnectmysql.go b/mysql/golangconnectmysql.go new file mode 100644 index 0000000..3e1a33c --- /dev/null +++ b/mysql/golangconnectmysql.go @@ -0,0 +1,29 @@ +package main + +import ( + "database/sql" + _ "github.com/go-sql-driver/mysql" //自动执行init() + "log" +) + +// go链接mysql示例 +func main() { + //数据库信息 + dsn := "root:123456@tcp(43.143.245.135:3306)/wangaodev" + //连接数据库 + db, err := sql.Open("mysql", dsn) //不会校验用户名和密码是否正确 + if err != nil { + //dsn 格式不正确会报错 + log.Fatalf("dsn:%s invalid ,err%v\n", dsn, err) + return + } + //校验用户名和密码是否正确 + //尝试连接数据库 + err = db.Ping() + if err != nil { + log.Fatalf("open %s failed,err%v\n", dsn, err) + return + } + log.Printf("connect %s success.\n", dsn) + defer db.Close() +} diff --git a/mysql/mysql.log b/mysql/mysql.log index 31a5fac..65e3e93 100644 --- a/mysql/mysql.log +++ b/mysql/mysql.log @@ -31,4 +31,12 @@ SQL慢查询优化 运维相关 MYSQL主从 binlog -MYSQL读写分离 \ No newline at end of file +MYSQL读写分离 + +golang 的database/sql 原生支持链接池,是并发安全的 +这个标准库没有具体的实现,只是列出了一些第三方库需要实现的内容 + +下载驱动 +go get -u github.com/go-sql-driver/mysql + +导入驱动