4.5 GO方式安装

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 4.5 GO方式安装

一、安装go语言环境

1. 下载解压go

```s
[root@node1 ~]wget https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz
```
```s
[root@node1 ~]tar -zxvf go1.19.1.linux-amd64.tar.gz -C /usr/local
```

2. 添加环境变量

```s
export PATH=$PATH:/usr/local/go/bin
```

3. 测试运行

```go
package main
import fmt
func main(){
fmt.Println("hello,world!")
}
```
```s
[root@node1 ~]go run test.go
hello,world!
```

二、 openGauss安装 **15s安装完成)**

 

 

1. 源代码

```s
[root@node1 ~]cat gaussdb.go
package main
import (
    "fmt"
    "io/ioutil"
    "os/exec"
)
func main() {
    cmd := exec.Command("/bin/bash", "-c", `useradd omm ;echo "Enmo@123" | passwd --stdin omm > /dev/null ;mkdir -p /opt/mogdb/software;chown -R omm:omm /opt/;tar -xf  openGauss-3.1.0-CentOS-64bit.tar.bz2 -C /opt/mogdb/software; su - omm -c "echo 'export GAUSSHOME=/opt/mogdb/software'  >> /home/omm/.bashrc ;echo 'export PATH=\$GAUSSHOME/bin:\$PATH' >> /home/omm/.bashrc ;echo 'export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH' >> /home/omm/.bashrc;source /home/omm/.bashrc;gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8 > /dev/null ;echo \"port=26000\" >> /opt/mogdb/data/postgresql.conf;echo \"listen_addresses = '0.0.0.0'\" >> /opt/mogdb/data/postgresql.conf;echo \"password_encryption_type = 0\" >> /opt/mogdb/data/postgresql.conf;echo \"log_directory = 'pg_log'\" >> /opt/mogdb/data/postgresql.conf;echo \"remote_read_mode=non_authentication\" >> /opt/mogdb/data/postgresql.conf;echo \"host all all 0.0.0.0/0 md5\" >> /opt/mogdb/data/pg_hba.conf;gs_ctl start -D /opt/mogdb/data > /dev/null ;gsql -d postgres -p 26000 -c'select version();select pg_postmaster_start_time();';echo -e 'data_user is omm ! \ndata_port is 26000 ! \ndata_path is /opt/mogdb/data ! \ndata_soft is /opt/mogdb/software !'"`)
//  cmd := exec.Command("/bin/bash", "-c", `df -h;ls`)
    //创建获取命令输出管道
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        fmt.Printf("Error:can not obtain stdout pipe for command:%s\n", err)
        return
    }
    //执行命令
    if err := cmd.Start(); err != nil {
        fmt.Println("Error:The command is err,", err)
        return
    }
    //读取所有输出
    bytes, err := ioutil.ReadAll(stdout)
    if err != nil {
        fmt.Println("ReadAll Stdout:", err.Error())
        return
    }
    if err := cmd.Wait(); err != nil {
        fmt.Println("wait:", err.Error())
        return
    }
    fmt.Printf("stdout:\n\n %s", bytes)
}
```

2. go run 测试运行

 

准备安装包

```s
[root@node1 ~]ls openGauss-3.1.0-CentOS-64bit.tar.bz2 gaussdb.go
gaussdb.go openGauss-3.1.0-CentOS-64bit.tar.bz2
```

go run

```s
[root@node1 ~]go run gaussdb.go
stdout:
                                                                       version
------------------------------------------------------------------------------------------------------------------------------------------------------
 (openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr   on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
  pg_postmaster_start_time
-------------------------------
 2022-09-28 13:38:28.550462+08
(1 row)
data_user is omm !
data_port is 26000 !
data_path is /opt/mogdb/data !
data_soft is /opt/mogdb/software !
```

连接测试

```s
[root@node1 ~]su omm
Last login: Wed Sep 28 13:39:38 CST 2022
[omm@node1 ~]$ gsql -d postgres -p26000 -r
gsql ((openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=select version();
                                                                      version
------------------------------------------------------------------------------------------------------------------------------------------------------
 (openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr   on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
openGauss=\q
[omm@node1 ~]$ logout
```

go build 二进制

```s
[root@node1 ~]go build gaussdb.go
[root@node1 ~]ls gaussdb openGauss-3.1.0-CentOS-64bit.tar.bz2 gaussdb.go
gaussdb gaussdb.go openGauss-3.1.0-CentOS-64bit.tar.bz2
```

清理环境

```s
[root@node1 ~]cat a.sh
pkill -9 gaussdb
rm -rf /opt/mogdb/*
userdel -r omm
[root@node1 ~]sh a.sh
```

安装

```s
[root@node1 ~]date;./gaussdb;date
Wed Sep 28 13:53:12 CST 2022
stdout:
                                                                       version
------------------------------------------------------------------------------------------------------------------------------------------------------
 (openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr   on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
  pg_postmaster_start_time
-------------------------------
 2022-09-28 13:53:27.034021+08
(1 row)
data_user is omm !
data_port is 26000 !
data_path is /opt/mogdb/data !
data_soft is /opt/mogdb/software !
Wed Sep 28 13:53:27 CST 2022
```

连接测试

```s
[root@node1 ~]su omm
Last login: Wed Sep 28 13:53:19 CST 2022
[omm@node1 ~]$ gsql -d postgres -p26000 -r
gsql ((openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=select version();
                                                                      version
------------------------------------------------------------------------------------------------------------------------------------------------------
 (openGauss 3.1.0 build 2c0ccaf9) compiled at 2022-09-25 19:32:58 commit 0 last mr   on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
openGauss=\q
```
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
10月前
|
NoSQL 数据可视化 Ubuntu
一文便知 GO 中mongodb 的安装与使用
咱们来回顾一下上次分享的内容: • 如何使用log 包 • log 包原理和具体实现 • 自定义日志
304 0
|
6天前
|
Linux Go iOS开发
【Go语言专栏】Go语言入门教程:从安装到第一个Hello World
【4月更文挑战第30天】本文介绍了Go语言的基础知识,包括其由Google开发、静态类型、编译型特点以及在服务器端编程等领域的应用。文章详细阐述了如何安装Go语言,包括在Windows、macOS和Linux上的步骤,并提供了验证安装的方法。接着,介绍了设置工作空间和配置环境变量的过程。最后,通过创建并运行一个"Hello, World!"程序,让读者初步体验Go语言的编程。文章还提供了进一步学习Go语言的资源,助力读者深入学习。
|
6天前
|
Go API iOS开发
go语言下载安装
go语言下载安装
|
6天前
|
Go C语言
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
安装go-sqlite3包时报exec: "gcc": executable file not found in %PATH%解决办法
|
6天前
|
Unix Linux Go
开心档之 Go 语言环境安装
开心档之 Go 语言环境安装
|
6天前
|
Go
go语言安装及其环境配置
go语言安装及其环境配置
40 0
|
6天前
|
Linux Go
Centos 7安装Go语言环境
Centos 7安装Go语言环境
27 0
|
9月前
|
Unix Linux Go
Go 语言开发环境一键安装 | Linux版
Go 语言开发环境一键安装 | Linux版
135 0
|
10月前
|
NoSQL Ubuntu Linux
|
6月前
|
Unix Linux Go
Go 语言环境安装
在使用golang安装软件完成安装之后,如果使用go run或者go build时,显示不能识别go 命令。此时可以先重启电脑。因为PATH的路径此时并没有加载对应的go 安装路径 ,win下默认的路径是:c:\go或者C:\Program Files\Go。
36 0

相关实验场景

更多