Linux下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" 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" 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)`调整连接数。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

