在Ubuntu上使用Golang连接数据库
想在Ubuntu系统里用Golang操作数据库?第一步很关键:你得确保已经装好了对应的数据库驱动。别小看这一步,驱动选对了,后续的连接和操作才能顺畅。下面,咱们就以最常用的MySQL和PostgreSQL为例,手把手走一遍连接流程。

连接MySQL数据库
MySQL在Web开发里用得相当普遍,用Golang来连接它其实并不复杂。跟着下面两步走就行。
- 安装MySQL驱动:
首先,打开终端,通过go get命令获取官方推荐的驱动。这个驱动社区维护得不错,性能和稳定性都有保障。
go get -u github.com/go-sql-driver/mysql
- 编写Golang代码连接MySQL数据库:
驱动装好后,就可以在代码里大展身手了。下面这段代码清晰地展示了连接的核心步骤:定义数据源、建立连接、最后别忘了测试连通性。
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
// 连接数据库
db, err := sql.Open("mysql", dsn)
if err != nil {
panic(err)
}
defer db.Close()
// 测试连接
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to MySQL database!")
}
连接PostgreSQL数据库
说完MySQL,再来看看另一个热门选择——PostgreSQL。它的连接方式略有不同,但整体思路是相通的。
- 安装PostgreSQL驱动:
同样地,先从获取驱动开始。这里用的是应用广泛的pq驱动。
go get -u github.com/lib/pq
- 编写Golang代码连接PostgreSQL数据库:
代码结构是不是很眼熟?没错,Golang的database/sql包提供了统一的接口。主要区别在于连接字符串的格式。
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() {
// 数据库连接信息
connStr := "user=username dbname=dbname password=password host=localhost port=5432 sslmode=disable"
// 连接数据库
db, err := sql.Open("postgres", connStr)
if err != nil {
panic(err)
}
defer db.Close()
// 测试连接
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to PostgreSQL database!")
}
到这里,两个数据库的连接方法就都清楚了。需要提醒你的是,务必记得把示例中的用户名、密码、数据库名等信息替换成你自己环境里的实际配置。代码运行成功后,终端上那句“Connected”的提示,就是最好的回报。
