首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到SAP ASE失败

连接到SAP ASE失败
EN

Database Administration用户
提问于 2020-12-28 18:47:03
回答 1查看 380关注 0票数 0

全,

代码语言:javascript
复制
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实例。

代码语言:javascript
复制
[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接口。

这是我的接口文件:

代码语言:javascript
复制
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,也不能连接我的程序?

EN

回答 1

Database Administration用户

发布于 2021-02-05 11:07:06

ODBC日志记录有点冗长。深入研究,我们发现:

DSN=Sybase16;Driver=Sybase;UID=.出口:

好吧,所以你的连接失败了。幸运的是,ODBC本身很好心,并试图找出为什么.

消息文本=[无效端口号]

因此,您未能指定连接所需的端口号。如果有疑问,请参考ConnectionStrings.com

DSN=Sybase16;Driver=Sybase;UID=sa;PWD=********

感谢您与我们分享您的sa密码。快去,改变,马上!

然后:

  • 为您的应用程序创建一个专用帐户,
  • 授予该帐户适当的权限,以便应用程序工作,以及
  • 除了清理其他人/过程造成的混乱之外,不要再使用sa帐户。

永远把最大和最好的工具放在工具箱里为你自己!

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/282259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档