在CentOS上使用Golang连接数据库,通常需要遵循以下步骤:
go get
命令安装go-sql-driver/mysql
包:go get -u github.com/go-sql-driver/mysql
对于其他数据库,如PostgreSQL、MongoDB等,你可以查找相应的Golang驱动并按照类似的方式进行安装。
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
注意,这里的_
表示我们只是导入这个包来注册驱动,而不是直接使用它。
dataSourceName := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
sql.Open()
函数创建一个数据库连接对象:db, err := sql.Open("mysql", dataSourceName)
if err != nil {
log.Fatal(err)
}
defer db.Close()
db.Ping()
函数测试数据库连接是否成功:err = db.Ping()
if err != nil {
log.Fatal(err)
}
db.Query()
或db.Exec()
函数执行SQL查询或更新操作。以下是一个完整的示例,展示了如何在Golang中连接到MySQL数据库并执行一个简单的查询:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
dataSourceName := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := sql.Open("mysql", dataSourceName)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
var name string
var age int
err = db.QueryRow("SELECT name, age FROM users WHERE id = ?", 1).Scan(&name, &age)
if err != nil {
panic(err)
}
fmt.Printf("User: %s, Age: %d\n", name, age)
}
根据所使用的数据库类型,你需要更改驱动名称、连接字符串和SQL查询。