加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (http://www.zzredu.com/)- 应用程序、AI行业应用、CDN、低代码、区块链!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux下Go环境与数据库极速配置指南

发布时间:2026-04-13 15:04:43 所属栏目:Linux 来源:DaWei
导读:  在Linux系统下配置Go开发环境并连接数据库是开发高效后端服务的基础步骤。本文以Ubuntu 22.04 LTS为例,详细说明从安装Go到连接MySQL和PostgreSQL的全流程,确保开发者能在30分钟内完成基础环境搭建。  安装Go

  在Linux系统下配置Go开发环境并连接数据库是开发高效后端服务的基础步骤。本文以Ubuntu 22.04 LTS为例,详细说明从安装Go到连接MySQL和PostgreSQL的全流程,确保开发者能在30分钟内完成基础环境搭建。


  安装Go语言环境需通过官方源获取最新版本。访问golang.org下载页面,选择对应系统的.tar.gz包(如go1.21.0.linux-amd64.tar.gz)。使用wget下载后,执行解压命令:`sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz`。配置环境变量时,编辑~/.profile文件,在末尾添加:



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

  保存后执行`source ~/.profile`使配置生效。验证安装通过`go version`命令,正确显示版本号即表示安装成功。Go模块管理需设置GOPROXY,执行`go env -w GOPROXY=https://goproxy.cn,direct`可加速依赖下载。


  MySQL数据库配置分三步完成。先安装服务端:`sudo apt install mysql-server`,安装过程中会提示设置root密码。启动服务后执行`sudo mysql_secure_installation`进行安全加固,推荐启用密码验证插件并移除匿名账户。创建开发专用账户:



CREATE USER 'dev'@'localhost' IDENTIFIED BY 'SecurePass123!';
GRANT ALL PRIVILEGES ON app_db. TO 'dev'@'localhost';
FLUSH PRIVILEGES;

2026建议图AI生成,仅供参考


  客户端连接需安装`sudo apt install mysql-client`,测试连接用`mysql -u dev -p -h 127.0.0.1`。


  PostgreSQL安装使用官方仓库确保版本最新。添加仓库:`sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'`,导入GPG密钥后安装:



wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-15 postgresql-client-15

  默认配置下PostgreSQL通过Unix域套接字认证,需切换至postgres用户创建数据库:`sudo -i -u postgres psql`,执行`CREATE DATABASE app_db;`和`CREATE USER dev WITH PASSWORD 'SecurePass123!';`,最后`GRANT ALL PRIVILEGES ON DATABASE app_db TO dev;`。


  Go连接MySQL推荐使用go-sql-driver/mysql驱动。创建项目目录后初始化模块:`go mod init app`,安装驱动:`go get -u github.com/go-sql-driver/mysql`。示例连接代码:



package main
import (


"database/sql"


"fmt"


_ "github.com/go-sql-driver/mysql"
)
func main() {


db, err := sql.Open("mysql", "dev:SecurePass123!@tcp(127.0.0.1:3306)/app_db")


if err != nil {


\tpanic(err)


}


defer db.Close()


err = db.Ping()


fmt.Println("MySQL connected:", err == nil)
}

  连接PostgreSQL使用lib/pq驱动,安装命令为`go get -u github.com/lib/pq`。连接字符串格式为:`postgres://dev:SecurePass123!@127.0.0.1:5432/app_db?sslmode=disable`。完整示例:



package main
import (


"database/sql"


"fmt"


_ "github.com/lib/pq"
)
func main() {


db, err := sql.Open("postgres", "host=127.0.0.1 port=5432 user=dev password=SecurePass123! dbname=app_db sslmode=disable")


if err != nil {


\tpanic(err)


}


defer db.Close()


err = db.Ping()


fmt.Println("PostgreSQL connected:", err == nil)
}

  常见问题排查:连接失败时检查防火墙设置(`sudo ufw status`),MySQL默认监听127.0.0.1而非0.0.0.0;PostgreSQL需修改pg_hba.conf文件添加host认证规则。驱动版本冲突可通过`go mod tidy`清理依赖。性能优化方面,建议使用连接池(sql.DB对象已内置),通过`db.SetMaxIdleConns(10)`和`db.SetMaxOpenConns(100)`调整连接数。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章