位置:首页 > Go > CentOS 上用 Golang 连接 MySQL 与 PostgreSQL:安装、示例与排查

CentOS 上用 Golang 连接 MySQL 与 PostgreSQL:安装、示例与排查

时间:2026-08-23  |  作者:半糖攻略君  |  阅读:0

在CentOS上搞定Golang的数据库连接,其实跟其他Linux发行版没什么两样,流程几乎是通用的。下面直接上干货,分别演示MySQL和PostgreSQL的接入方式,代码和步骤都贴出来了,照着走就行。

CentOS中Golang的数据库连接方法

  1. 安装Golang

如果还没装Golang,先搞定它。用下面的命令下载并解压到/usr/local,再配一下环境变量。注意版本号可以根据需要调整,但别用太老的。

wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

装完跑一下go version确认,OK就继续。

  1. 安装数据库驱动

MySQL用go-sql-driver/mysql,PostgreSQL用pq。直接go get搞定,简单粗暴:

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

这里注意,如果网络环境不好,可能需要设置袋里,但这是另一个话题了。

  1. 编写Golang代码连接数据库

创建一个main.go文件,把下面的代码贴进去。先看MySQL的:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    dsn := "username:password@tcp(localhost:3306)/dbnamecharset=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!")
}

再来看PostgreSQL的:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

func main() {
    connStr := "user=username dbname=dbname password=password 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!")
}

关键提醒:代码里的usernamepasswordlocalhost、端口号(MySQL默认3306,PostgreSQL默认5432)、数据库名,统统替换成你自己的实际配置。另外,PostgreSQL的连接字符串里sslmode=disable适用于开发环境,生产环境建议用requireverify-full

  1. 运行程序

终端里进入main.go所在目录,直接跑:

go run main.go

如果一切顺利,你会看到类似这样的输出:

Connected to MySQL!

或者

Connected to PostgreSQL!

这就意味着CentOS上的Golang已经成功连上了数据库。整个过程没什么坑,只要驱动装对、连接串写对,基本一次过。如果遇到问题,先检查数据库服务是否启动、端口是否开放、防火墙有没有拦截,这些都比代码本身更容易出问题。

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

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多