
# Go驱动环境搭建
#### 获取驱动包
下载[表1]中的驱动包和驱动包校验包。
 表1驱动包下载列表 
| 版本       | 下载地址                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| V2.0-8.x | [驱动包](https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1772024234272/GaussDB_driver.zip) [驱动包校验包](https://dbs-download.obs.cn-north-1.myhuaweicloud.com/GaussDB/1772024234272/GaussDB_driver.zip.sha256) |
   
为了防止软件包在传递过程或存储期间被恶意篡改，下载软件包时需下载对应的校验包对软件包进行校验，校验方法如下：
- Linux操作系统软件包完整性校验：
  1. 上传软件包和软件包校验包到虚拟机的同一目录下。
  
  2. 执行如下命令，校验软件包完整性。 **cat** *GaussDB_driver.zip.sha256* **\| sha256sum --check**
     如果回显OK，则校验通过。
     ```
     GaussDB_driver.zip: OK
     ```
     
   

- Windows操作系统软件包完整性校验：
  1. 使用快捷键"Win+R"打开"运行"窗口。 在"打开"栏，输入"cmd"，按"Enter"回车，打开命令行页面。
  
  2. 执行以下命令，获取驱动包的Hash值。
     certutil -hashfile *{* *驱动包本地目录* *}* \\*{驱动包名}* sha256
     - {*驱动包本地目录*}：请根据实际下载目录进行替换。例如：C:\\Users
     
     - {*驱动包*名}：请根据实际下载的驱动包名进行替换。例如：GaussDB_driver.zip
     
     
     示例：certutil -hashfile C:\\Users\\GaussDB_driver.zip sha256
     
  
  3. 将[2]获取到的Hash值和[表1]中获取到的驱动包校验包的Hash值进行比较。
     - 若一致则通过校验。
     
     - 若不一致，请重新下载驱动包，重复[1]\~[3]进行校验。
      
   
 
#### 环境类
- **Go环境配置**
  用户需要在环境变量中配置以下参数：
  - GO111MODULE：用户使用在线导入的方式安装Go驱动时需要设置GO111MODULE为on。如果不希望进行go mod工程的改造，需将GO111MODULE设置为off，并手动下载依赖包。依赖包与驱动根目录和业务代码保持同级。
  
  - GOPROXY：用户使用在线导入时需配置包含Go驱动包的路径。
  
  - 用户可以根据自己场景参数配置Go其他相关环境变量。
  
  
  通过go env查看Go环境变量配置结果，并且查看Go版本是否在1.13或以上。
  
- **Go驱动安装**
  - 从驱动包中获取Go驱动包。包名为GaussDB -Kernel_数据库版本号_操作系统版本号_64bit_Go.tar.gz。解压后为Go驱动源码包。
  
  - 进入Go驱动代码根路径，执行go mod tidy下载相关依赖，需要在环境变量中配置GOPATH=${Go驱动依赖包存放路径}。
  
  - 若依赖已下载至本地，可以在go.mod里面添加一行"通过replace将Go驱动包替换为本地Go驱动包地址"，表示代码里面所有的import Go驱动包都是使用本地路径，同时依赖也不会从代理里下载。
  
  
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
  - 通过go mod tidy下载相关依赖时可能会下载为某个依赖的低版本，如果依赖的低版本存在漏洞，可以通过更改go.mod文件中对应依赖的版本号，更新依赖到漏洞修复后的版本来规避风险。
  
  - 用户不涉及驱动开发，调用需go 1.13版本或以上即可，runtime运行库需要更新至1.18版本及以上。
    
 
#### 驱动类
在创建数据库连接时，需要传入数据库驱动名称"gaussdb"。其他Go驱动介绍请参见[Go驱动兼容](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0245.html#ZH-CN_TOPIC_0000002559105595__zh-cn_topic_0000002558216285_section1722122104010)。
