Linux 上 alexbrainman/odbc 无法连接到 Go 中的第 3 方 ODBC 驱动程序
Unable to connect to 3rd party ODBC driver in Go with alexbrainman/odbc on Linux
我正在尝试使用第 3 方 ODBC 驱动程序(可下载 here) in Go using the alexbrainman ODBC driver)连接到数据源。我已经使用以下方法测试了相关的 DSN:
isql -v "CData Redis Source"
一切都按预期进行。而且我知道我安装了 unixODBC 2.3.1 (isql --version
)。
问题
当我尝试 运行 下面的 Go 程序时,我得到这个错误消息,从 db.Ping()
调用中产生(Google 翻译似乎无法翻译):
SQLDriverConnect: {こ0} [unixODBC]湉慶楬潣湮捥楴湯猠牴湩祳瑮硡愠⁴湩敤⁸ㅛ㩝
我的代码:
package main
import (
_ "github.com/alexbrainman/odbc"
"database/sql"
"log"
)
func main() {
db, err := sql.Open("odbc","DSN=CData Redis Source")
if err != nil {
log.Fatal(err);
}
var (
name string
)
rows, err := db.Ping()
if err != nil {
log.Fatal(err)
}
}
如果我执行 db.Query()
或 db.Prepare()
,我会看到同样的错误。
详情
- Ubuntu 16.04.3 LTS
- unixODBC 2.3.1
- 用于 Redis 的 CData 软件 ODBC 驱动程序
- go1.6.2 linux/amd64
- github.com/alexbrainman/odbc
请求
我很乐意翻译错误消息以帮助我调试 AND/OR 一些帮助确定为什么我的错误消息不是英文的 AND/OR 实际建议的错误解决方案留言。
事实证明,我需要确保将 CData 驱动程序配置为使用 UTF-16 编码,这是 unixODBC 所要求的。为此,我编辑了驱动程序的 INI 文件:
/opt/cdata/cdata-odbc-driver-for-redis/lib/cdata.odbc.redis.ini
[Driver]
DriverManagerEncoding = UTF-16
完成此操作后,CData 驱动程序将按预期与 alexbrainman/odbc 数据库驱动程序(以及其他与 Go 相关的 ODBC 数据库驱动程序)一起工作。
我正在尝试使用第 3 方 ODBC 驱动程序(可下载 here) in Go using the alexbrainman ODBC driver)连接到数据源。我已经使用以下方法测试了相关的 DSN:
isql -v "CData Redis Source"
一切都按预期进行。而且我知道我安装了 unixODBC 2.3.1 (isql --version
)。
问题
当我尝试 运行 下面的 Go 程序时,我得到这个错误消息,从 db.Ping()
调用中产生(Google 翻译似乎无法翻译):
SQLDriverConnect: {こ0} [unixODBC]湉慶楬潣湮捥楴湯猠牴湩祳瑮硡愠⁴湩敤⁸ㅛ㩝
我的代码:
package main
import (
_ "github.com/alexbrainman/odbc"
"database/sql"
"log"
)
func main() {
db, err := sql.Open("odbc","DSN=CData Redis Source")
if err != nil {
log.Fatal(err);
}
var (
name string
)
rows, err := db.Ping()
if err != nil {
log.Fatal(err)
}
}
如果我执行 db.Query()
或 db.Prepare()
,我会看到同样的错误。
详情
- Ubuntu 16.04.3 LTS
- unixODBC 2.3.1
- 用于 Redis 的 CData 软件 ODBC 驱动程序
- go1.6.2 linux/amd64
- github.com/alexbrainman/odbc
请求
我很乐意翻译错误消息以帮助我调试 AND/OR 一些帮助确定为什么我的错误消息不是英文的 AND/OR 实际建议的错误解决方案留言。
事实证明,我需要确保将 CData 驱动程序配置为使用 UTF-16 编码,这是 unixODBC 所要求的。为此,我编辑了驱动程序的 INI 文件:
/opt/cdata/cdata-odbc-driver-for-redis/lib/cdata.odbc.redis.ini
[Driver]
DriverManagerEncoding = UTF-16
完成此操作后,CData 驱动程序将按预期与 alexbrainman/odbc 数据库驱动程序(以及其他与 Go 相关的 ODBC 数据库驱动程序)一起工作。