全,
igor@IgorReinCloud ~ $ cat /etc/unixODBC/odbc.ini
[Sybase16]
Driver=Sybase
Description=Sybase 16 Native Driver
Trace=Yes
Server=REINCLOUD
Database=draft
TraceLog=/tmp/sql.log
Port=5000
UserID=sa
igor@IgorReinCloud ~ $ cat /etc/unixODBC/odbcinst.ini
[ODBC]
Trace=yes
TraceFile=/tmp/sql.log
[Sybase]
Description=Native Sybase Driver
Driver=/opt/sap/DataAccess/ODBC/lib/libsybdrvodb.so
FileUsage=1
igor@IgorReinCloud ~ $ ls -la /opt/sap/DataAccess/ODBC/lib/
total 8388
drwxrwxr-x 3 root root 4096 Nov 15 17:46 .
drwxrwxr-x 6 root root 4096 Nov 15 17:46 ..
-rwxr-xr-x 1 root root 4691399 Aug 28 2017 libsapcrypto.so
-rwxr-xr-x 1 root root 416329 Aug 28 2017 libslcryptokernel.so
-rwxr-xr-x 1 root root 166 Aug 28 2017 libslcryptokernel.so.sha256
-rwxr-xr-x 1 root root 3459940 Aug 28 2017 libsybdrvodb.so
drwxrwxr-x 5 root root 4096 Nov 15 17:46 locales
igor@IgorReinCloud ~ $ isql Sybase16 sa
[ISQL]ERROR: Could not SQLConnect
igor@IgorReinCloud ~ $ cat /tmp/sql.log
[ODBC][15915][1609181009.277918][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/__handles.c][460]
Exit:[SQL_SUCCESS]
Environment = 0x55eac5c98a00
[ODBC][15915][1609181009.278029][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLAllocHandle.c][377]
Entry:
Handle Type = 2
Input Handle = 0x55eac5c98a00
[ODBC][15915][1609181009.278075][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLAllocHandle.c][493]
Exit:[SQL_SUCCESS]
Output Handle = 0x55eac5c99b90
[ODBC][15915][1609181009.278132][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLConnect.c][3751]
Entry:
Connection = 0x55eac5c99b90
Server Name = [Sybase16][length = 8 (SQL_NTS)]
User Name = [sa][length = 2 (SQL_NTS)]
Authentication = [******][length = 6 (SQL_NTS)]
UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE'
[ODBC][15915][1609181009.281022][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLConnect.c][1138]Can't open lib '/opt/sap/DataAccess/ODBC/lib/libsybdrvodb.so' : file not found
[ODBC][15915][1609181009.281164][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][290]
Entry:
Handle Type = 2
Input Handle = 0x55eac5c99b90
[ODBC][15915][1609181009.281215][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][339]
Exit:[SQL_SUCCESS]
[ODBC][15915][1609181009.281259][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][220]
Entry:
Handle Type = 1
Input Handle = 0x55eac5c98a00我不明白这个错误。
文件确实存在,它具有read/execute权限和AFAIU,我不需要设置sybase环境就可以从unixODBC isql获得unixODBC连接。
与SAP连接,DBISQL工作正常。
有人能帮忙吗?
谢谢。
编辑:
在修复了代码中的几个bug之后,下面是运行我的代码后的odbc日志文件。
我正在尝试连接到SAP ASE 16实例。
[ODBC][30289][1612492650.771991][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/__handles.c][460]
Exit:[SQL_SUCCESS]
Environment = 0x564ee933ab90
[ODBC][30289][1612492650.772100][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetEnvAttr.c][189]
Entry:
Environment = 0x564ee933ab90
Attribute = SQL_ATTR_ODBC_VERSION
Value = 0x3
StrLen = 0
[ODBC][30289][1612492650.772141][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetEnvAttr.c][381]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492650.772187][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][122]
Entry:
Environment = 0x564ee933ab90
[ODBC][30289][1612492650.782200][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][323]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492650.782328][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][122]
Entry:
Environment = 0x564ee933ab90
[ODBC][30289][1612492650.782809][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][323]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492650.782879][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][122]
Entry:
Environment = 0x564ee933ab90
[ODBC][30289][1612492650.783125][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][323]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492650.783171][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][220]
Entry:
Handle Type = 1
Input Handle = 0x564ee933ab90
[ODBC][30289][1612492666.505105][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/__handles.c][460]
Exit:[SQL_SUCCESS]
Environment = 0x564ee9426000
[ODBC][30289][1612492666.505220][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetEnvAttr.c][189]
Entry:
Environment = 0x564ee9426000
Attribute = SQL_ATTR_ODBC_VERSION
Value = 0x3
StrLen = -6
[ODBC][30289][1612492666.505261][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetEnvAttr.c][381]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492666.505302][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLAllocHandle.c][377]
Entry:
Handle Type = 2
Input Handle = 0x564ee9426000
[ODBC][30289][1612492666.505348][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLAllocHandle.c][493]
Exit:[SQL_SUCCESS]
Output Handle = 0x564ee9236e00
[ODBC][30289][1612492666.505390][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][122]
Entry:
Environment = 0x564ee9426000
[ODBC][30289][1612492666.505718][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDataSourcesW.c][323]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492666.505785][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetConnectAttrW.c][332]
Entry:
Connection = 0x564ee9236e00
Attribute = SQL_ATTR_LOGIN_TIMEOUT
Value = 0x5
StrLen = 0
[ODBC][30289][1612492666.505828][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLSetConnectAttrW.c][623]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492666.505875][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][290]
Entry:
Connection = 0x564ee9236e00
Window Hdl = 0x564ee9268260
Str In = [DSN=Sybase16;Driver=Sybase;UID=sa;PWD=wasqra][length = 44 (SQL_NTS)]
Str Out = 0x564ee947d5a0
Str Out Max = 1024
Str Out Ptr = 0x7fffced2eb98
Completion = 0
UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE'
[ODBC][30289][1612492666.522916][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][699]
Exit:[SQL_ERROR]
[ODBC][30289][1612492666.523100][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516]
Entry:
Connection = 0x564ee9236e00
Rec Number = 1
SQLState = 0x7fffced2e710
Native = 0x7fffced2e6c4
Message Text = 0x7fffced2e740
Buffer Length = 1024
Text Len Ptr = 0x7fffced2e6bc
[ODBC][30289][1612492666.523238][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563]
Exit:[SQL_SUCCESS]
SQLState = [01S00]
Native = 0x7fffced2e6c4 -> 30011
Message Text = [[SAP][ASE ODBC Driver]Invalid port number]
[ODBC][30289][1612492666.523381][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516]
Entry:
Connection = 0x564ee9236e00
Rec Number = 2
SQLState = 0x7fffced2e710
Native = 0x7fffced2e6c4
Message Text = 0x7fffced2e740
Buffer Length = 1024
Text Len Ptr = 0x7fffced2e6bc
[ODBC][30289][1612492666.523429][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563]
Exit:[SQL_NO_DATA]
[ODBC][30289][1612492670.055754][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetConnectAttrW.c][236]
Entry:
Connection = 0x564ee9236e00
Attribute = 1209
Value = 0x7fffced310f8
Buffer Length = 0
StrLen = 0x7fffced310f0
[ODBC][30289][1612492670.055861][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetConnectAttrW.c][325]Error: 08003
[ODBC][30289][1612492670.055930][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516]
Entry:
Connection = 0x564ee9236e00
Rec Number = 1
SQLState = 0x7fffced30c70
Native = 0x7fffced30c24
Message Text = 0x7fffced30ca0
Buffer Length = 1024
Text Len Ptr = 0x7fffced30c1c
[ODBC][30289][1612492670.055998][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563]
Exit:[SQL_SUCCESS]
SQLState = [08003]
Native = 0x7fffced30c24 -> 0
Message Text = [[unixODBC][Driver Manager]Connection not open]
[ODBC][30289][1612492670.056064][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516]
Entry:
Connection = 0x564ee9236e00
Rec Number = 2
SQLState = 0x7fffced30c70
Native = 0x7fffced30c24
Message Text = 0x7fffced30ca0
Buffer Length = 1024
Text Len Ptr = 0x7fffced30c1c
[ODBC][30289][1612492670.056107][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563]
Exit:[SQL_NO_DATA]
[ODBC][30289][1612492670.056158][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][290]
Entry:
Handle Type = 2
Input Handle = 0x564ee9236e00
[ODBC][30289][1612492670.056209][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][339]
Exit:[SQL_SUCCESS]
[ODBC][30289][1612492670.056253][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][220]
Entry:
Handle Type = 1
Input Handle = 0x564ee9426000有人告诉我,我需要修改interfaces文件,这样客户端就不会使用它,而是使用ODBC接口。
这是我的接口文件:
REINCLOUD
master tcp ether localhost 5000
query tcp ether localhost 5000
REINCLOUD_BS
master tcp ether localhost 5001
query tcp ether localhost 5001
REINCLOUD_XP
master tcp ether localhost 5002
query tcp ether localhost 5002
REINCLOUD_JSAGENT
master tcp ether localhost 4900
query tcp ether localhost 4900为这么大的职位感到抱歉。
有人能解释一下是怎么回事吗?为什么我既不能连接isql,也不能连接我的程序?
发布于 2021-02-05 11:07:06
ODBC日志记录有点冗长。深入研究,我们发现:
DSN=Sybase16;Driver=Sybase;UID=.出口:
好吧,所以你的连接失败了。幸运的是,ODBC本身很好心,并试图找出为什么.
消息文本=[无效端口号]
因此,您未能指定连接所需的端口号。如果有疑问,请参考ConnectionStrings.com。
DSN=Sybase16;Driver=Sybase;UID=sa;PWD=********
感谢您与我们分享您的sa密码。快去,改变,马上!
然后:
永远把最大和最好的工具放在工具箱里为你自己!
https://dba.stackexchange.com/questions/282259
复制相似问题