发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Linux环境下用Go操作数据库,说起来是每个后端开发者早晚要面对的事。虽然Go本身的标准库已经封装了database/sql接口,但真正上手时,环境配置、驱动选择、代码写法这些细节还是会卡住不少人。下面就把整个流程掰开揉碎讲一遍,跟着走就行。

如果机器上还没装Go,先去官网下载对应Linux版本的安装包。安装过程不复杂,解压到/usr/local就行。关键是要把环境变量配清楚——GOROOT指向安装路径,GOPATH指向你的工作空间。
在~/.bashrc或~/.zshrc里加上这几行:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存后执行source ~/.bashrc让配置生效。验证一下:终端里输入go version,能正常显示版本号就说明搞定了。
Go不像Python或Node.js那样自带数据库驱动,需要手动安装。选什么驱动取决于你要连什么库。以最常见的MySQL为例,官方推荐的驱动是go-sql-driver/mysql,一条命令搞定:
go get -u github.com/go-sql-driver/mysql
如果你用的是PostgreSQL,可以用lib/pq;MongoDB则用mongo-driver。安装方式大同小异,都是go get加对应仓库路径。
新建一个main.go文件,把下面的代码贴进去。这段例子演示了如何连接MySQL、执行查询并打印结果:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接字符串,注意替换成你自己的账号、密码、数据库名
dsn := "username:password@tcp(localhost:3306)/dbname"
// 打开连接
db, err := sql.Open("mysql", dsn)
if err != nil {
panic(err.Error())
}
defer db.Close()
// 测试连接是否正常
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("Connected to the database!")
// 执行查询
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 遍历结果集
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
panic(err.Error())
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
// 检查遍历过程中是否有错误
if err = rows.Err(); err != nil {
panic(err.Error())
}
}
这段代码里几个要点注意一下:
dsn字符串里username:password要替换成真实账号密码,dbname换成实际数据库名。_ "github.com/go-sql-driver/mysql",这是Go的惯用写法——只触发驱动的初始化注册,不直接调用它的函数。sql.Open只是初始化连接池,真正建立连接是在db.Ping()时。终端切到main.go所在目录,执行:
go run main.go
如果数据库在运行、账号权限没问题、表users存在且有数据,终端就会打印出所有用户的ID和Name。如果报错,八成是连接字符串写错了、驱动没装对、或者数据库端口/服务没起来。
上面的示例基于MySQL和go-sql-driver/mysql。换成其他数据库时,只需换驱动和调整dsn格式。比如PostgreSQL的DSN通常是host=localhost port=5432 user=username password=password dbname=dbname sslmode=disable。另外别忘了,做任何数据库操作之前,先确认数据库服务处于运行状态,并且你的账号有足够的权限——这往往是新手最容易忽略的地方。
下一篇:Golang日志文件在哪查找
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8