如何在Golang中搭建本地PostgreSQL环境

首先安装并启动postgresql服务,macOS用Homebrew、ubuntu用apt、windows从官网安装;接着创建数据库myapp_dev;然后初始化go项目并引入pgx驱动;编写代码连接数据库并执行版本查询;最后运行程序验证连接成功。

如何在Golang中搭建本地PostgreSQL环境

要在golang中搭建本地PostgreSQL环境,关键在于先在本地运行PostgreSQL服务,再通过Go代码连接和操作数据库。整个过程不复杂,只要一步步配置好即可。

安装并启动本地PostgreSQL

在开始写Go代码前,必须确保PostgreSQL已在本机运行。

macOS用户:推荐使用Homebrew安装

打开终端执行:

brew install postgresql<br>brew services start postgresql

Ubuntu用户:使用apt包管理器

运行以下命令:

立即学习go语言免费学习笔记(深入)”;

sudo apt update<br>sudo apt install postgresql postgresql-contrib<br>sudo service postgresql start

Windows用户:从官网下载安装包

访问 postgresql.org/download 下载并安装,安装过程中会提示设置密码,记得保存好。

安装完成后,使用psql创建开发用数据库:

createdb myapp_dev

或进入交互式终端:

psql -d myapp_dev

初始化Go项目并引入PostgreSQL驱动

新建项目目录并初始化模块:

如何在Golang中搭建本地PostgreSQL环境

如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

如何在Golang中搭建本地PostgreSQL环境27

查看详情 如何在Golang中搭建本地PostgreSQL环境

mkdir go-postgres-demo<br>cd go-postgres-demo<br>go mod init go-postgres-demo

Go本身不内置PostgreSQL支持,需引入第三方驱动,常用的是lib/pqjackc/pgx。这里以更高效且功能丰富的pgx为例:

go get github.com/jackc/pgx/v5

编写Go代码连接并查询PostgreSQL

创建一个main.go文件,写入以下内容:

package main  import (     "context"     "fmt"     "log"      "github.com/jackc/pgx/v5" )  func main() {     conn, err := pgx.Connect(context.Background(), "postgres://postgres:yourpassword@localhost/myapp_dev")     if err != nil {         log.Fatal("无法连接数据库:", err)     }     defer conn.Close(context.Background())      var version string     err = conn.QueryRow(context.Background(), "SELECT version()").Scan(&version)     if err != nil {         log.Fatal("查询失败:", err)     }      fmt.Println("PostgreSQL版本:", version) }

注意:连接字符串中的yourpassword要替换成你实际设置的PostgreSQL密码。若使用默认配置,可能无需密码,可尝试postgres://localhost/myapp_dev

运行程序:

go run main.go

如果看到PostgreSQL的版本信息输出,说明连接成功。

常见问题与建议

遇到连接拒绝?检查以下几点:

  • PostgreSQL服务是否已启动(可用brew services listsystemctl status postgresql确认)
  • 端口是否正确,默认是5432
  • 数据库用户是否存在,权限是否正确
  • 连接字符串格式是否完整

建议开发时使用配置文件或环境变量管理数据库连接信息,避免硬编码

基本上就这些。本地环境跑通后,就可以继续建表、插入数据、写CURD逻辑了。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇
text=ZqhQzanResources