位置:首页 > Go > Debian 中 Go 语言如何与数据库交互

Debian 中 Go 语言如何与数据库交互

时间:2026-08-23  |  作者:骑光打字机  |  阅读:0

在Debian系统上,用Go语言跟数据库打交道,其实就那么几步,走一遍流程就清楚了。

  1. 先把Go环境装好。如果还没装,终端里直接敲两行命令就行:

    sudo apt update
    sudo apt install golang-go
  2. 配置一下GOPATH和GOROOT。这两个环境变量,一个指向Go的安装位置,一个指向你的工作空间。通常把下面这几行加到~/.bashrc~/.profile里:

    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

    然后执行 source ~/.bashrcsource ~/.profile 让配置生效。

  3. 装数据库驱动。看你要连哪种数据库,选对应的驱动。比如用MySQL,就装go-sql-driver/mysql

    go get -u github.com/go-sql-driver/mysql

    PostgreSQL的话,用lib/pq

    go get -u github.com/lib/pq

    SQLite可以用modernc.org/sqlite

    go get -u modernc.org/sqlite
  4. 写代码。新建一个main.go,把数据库连接和查询逻辑写进去。下面是一个连MySQL的例子:

    package main
    
    import (
        "database/sql"
        "fmt"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
        // 连接数据库
        dsn := "user: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: %sn", id, name)
        }
    
        // 检查遍历时是否有错误
        if err = rows.Err(); err != nil {
            panic(err.Error())
        }
    }
  5. 运行程序。在终端里进到main.go所在目录,敲:

    go run main.go

    记得确保数据库服务已经启动,连接信息(用户名、密码、主机地址、库名)也正确。另外,根据防火墙设置,可能需要开放端口让Go应用能连上数据库。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多