
先建立以下目录结构和go源码文件:
main |- sqltools |- connmysql.go |- go.mod |- go.sum |-main.go
mian文件夹中是main.go文件和sqltools文件夹,sqltools文件夹中是connmysql.go文件,我们把数据库连接相关代码单独放在connmysql.go文件中,方便以后调用,main.go中调用connmysql.go中的数据库连接方法。
go.mod是执行go mod命令自动生成的,在命令提示行cmd进入main目录,执行以下命令:
go mod init main
从github.com下载mysql数据库的go驱动,golang连接数据库用户的驱动是:go-sql-driver。
在命令提示行cmd进入main目录下,执行以下命令:
go get -u github.com/go-sql-driver/mysql
成功执行后会将mysql驱动写入到go.mod文件中。
下面是connmysql.go文件的源码内容:
package sqltools import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func ConnectMySQL(dbUser, dbPassword, dbServer, dbName string) (db *sql.DB, err error) { //生成数据库连接字符串 str := dbUser + ":" + dbPassword + "@(" + dbServer + ":3306)/" + dbName //打印生成的字符串 fmt.Println("数据库连接字符串:" + str) //建立连接 db, err = sql.Open("mysql", str) //测试连接是否成功 err = db.Ping() //返回数据库连接 return db, err }
下面是main.go源代码:
package main import ( "main/sqltools" "fmt" ) const ( dbUser = "root" dbPassword = "123456" dbServer = "127.0.0.1" dbName = "golang" ) func main() { //连接MySQL数据库 db, err := sqltools.ConnectMySQL(dbUser, dbPassword, dbServer, dbName) if err == nil { fmt.Println("数据库连接成功") //返回的db连接可以在查询函数中使用,这里先不介绍,下面先打印出db的变量值 fmt.Println(db) } else { fmt.Println("数据库连接失败,请查询参数") } }
本机配置好mysql程序,并新建golang数据库,执行以下命令:
go run main.go
设置正确的数据库参数,如果连接成功,则输出:
数据库连接字符串:root:123456@(127.0.0.1:3306)/golang 数据库连接成功
将密码改为123,则数据库连接失败,则输出:
数据库连接字符串:root:123@(127.0.0.1:3306)/golang 数据库连接失败,请检查参数
以上代码在go 1.16.3调试通过。
原创文章,作者:AukCode,如若转载,请注明出处:https://www.archeCode.Com/source-code-of-golang-connecting-mysql-database.html