商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Linux上使用Go进行数据库操作

如何在Linux上使用Go进行数据库操作

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

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

如何在Linux上使用Go进行数据库操作

第一步:搞定Go语言环境

如果机器上还没装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。另外别忘了,做任何数据库操作之前,先确认数据库服务处于运行状态,并且你的账号有足够的权限——这往往是新手最容易忽略的地方。

本文转载于:https://www.yisu.com/ask/76838466.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注