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