1.连接mysql数据库

注:驱动都用 go get 下载

如下图所示,需使用mysql驱动

// mysql 驱动

_ "github.com/go-sql-driver/mysql"

代码示例:

// 连接mysql数据库

s := "%s:%s@tcp(%s)/%s?charset=utf8&multiStatements=true"

url := fmt.Sprintf(s, userName, password, linkAddr+":"+port, "")

db, err := sqlx.Connect("mysql", url)

if err != nil {

return nil, err

}

db.SetMaxIdleConns(1)

db.SetMaxOpenConns(5)

defer db.Close()

db.Select(&dbNames, "show databases")

执行结果:

mysqlresult.png

2.连接sqlserver数据库

如下图所示,需使用sqlserver驱动

"github.com/jmoiron/sqlx"

// sqlserver 驱动

_ "github.com/denisenkom/go-mssqldb"

代码示例:

// 连接sqlserver数据库

s := "server=%s;port%d;database=%s;user id=%s;password=%s"

url := fmt.Sprintf(s, linkAddr, port, "", userName, password)

db, err := sqlx.Connect("mssql", url)

if err != nil {

return nil, err

}

db.SetMaxIdleConns(1)

db.SetMaxOpenConns(5)

defer db.Close()

db.Select(&dbNames, "select name from sysdatabases")

执行结果:

sqlserverresult.png

3.连接oracle数据库

如下图所示,需使用oracle驱动

// oracle 驱动

//_ "github.com/mattn/go-oci8"

注:oracle驱动需要配置才能下载,以下为配置过程

解压两个文件,然后合并到一个目录中

将instantclient_12_2文件下的几个包链接到 usr/lib 目录下

先进入文件目录下

cd /oracle/instantclient_12_2/

打开终端,执行以下命令

ln -s libclntsh.dylib.12.1 /usr/lib

ln -s libocci.dylib.12.1 /usr/lib

ln -s libociei.dylib /usr/lib

ln -s libnnz12.dylib /usr/lib

执行这些命令有可能会报错

第一种错误:

notpermitted.png

报错原因&解决方案(百度的):

电脑启用了SIP(System Integrity

Protection),增加了rootless机制,导致即使在root权限下依然无法修改文

件,在必要时候为了能够修改下面的文件,我们只能关闭该保护机制

关闭保护机制:

1)重启,过程中按住 command+R,进入保护模式

2)进入后打开实用工具--终端 ,输入

csrutil disable

3)再次重启,即可对 usr/bin 目录下文件进行修改

注:如果要恢复保护机制,重新进入保护模式,输入

csrutil enable

第二种错误:

permissiondenied.png

执行以下命令可解决

sudo chown -R $(whoami)

sudo chown -R $(whoami) /usr/lib

安装pkg-config

使用brew安装:brew install pkg-config

下载pkg-config 地址:https://pkg-config.freedesktop.org/releases/

使用的第一种安装方式,不用再执行别的命令。

使用第二种安装方式,还需执行些以下命令

./configure --with-internal-glib

make

sudo make install

新建oci8.pc

prefixdir=/Users/oracle/instantclient_12_2 // 你的路径

libdir=${prefixdir}

includedir=${prefixdir}/sdk/include

Name: OCI

Description: Oracle database driver

Version: 12.2 // 你的版本

Libs: -L${libdir} -lclntsh

Cflags: -I${includedir}

oci8需要改两个地方 prefixdir,Version

oci8.pc文件放在/Users/oracle/instantclient_12_2下

配置环境变量

PKG_CONFIG_PATH=/Users/oracle/instantclient_12_2

LD_LIBRARY_PATH=/Users/oracle/instantclient_12_2

下载驱动

go get github.com/mattn/go-oci8