Driver's SQLAllocHandle on SQL_HANDLE_DBC failed
此问题的可能原因:可执行文件(比如 UnixODBC 的 isql,以下都以 isql 为例)与数据库驱动(psqlodbcw.so)依赖于不同的 odbc 的库版本:libodbc.so.1 或者 libodbc.so.2。此 问
题可以通过如下方式确认:
ldd `which isql` | grep odbc ldd psqlodbcw.so | grep odbc
这时,如果输出的 libodbc.so 最后的后缀数字不同或者指向不同的磁盘物理文件, 那么基本就可以断定是此问题。isql 与 psqlodbcw.so 都会要求加载 libodbc.so,这时如果它们加
载的是不同的物理文件,便会导致两套完全同名的函数列表,同时出现在同一个可见域里(UnixODBC 的 libodbc.so.*的函数导出列表完全一致), 产生冲突,无法加载数据库驱动。
解决办法:确定一个要使用的 UnixODBC,然后卸载另外一个(比如卸载库版本号为.so.2的 UnixODBC),然后将剩下的.so.1 的库,新建一个同名但是后缀为.so.2 的软链接,便可解决此问题。
FATAL: Forbid remote connection with trust method!
由于安全原因,数据库主节点禁止 GBase 8s 内部其他节点无认证接入。
如果要在 GBase 8s 内部访问数据库主节点,请将 ODBC 程序部署在数据库主节点所在机器,服务器地址使用"127.0.0.1"。建议业务系统单独部署在 GBase 8s 外部,否则可能会影响数据库运行性能。
[unixODBC][Driver Manager]Invalid attribute value
有可能是 unixODBC 的版本并非推荐版本,建议通过“odbcinst --version”命令排查环境中的 unixODBC 版本。
authentication method 10 not supported.
使用开源客户端碰到此问题,可能原因:
数据库中存储的口令校验只存储了SHA256格式哈希,而开源客户端只识别MD5 校验,双方校验方法不匹配报错。




