使用 unixODBC 的 isql 访问 sql 服务器
accessing sql server using unixODBC's isql
我正在尝试 运行 在 sql 服务器(源)上使用客户端服务器上的 isql 进行查询。
在客户端服务器上将 rhel6 升级到 rhel7 之前一切正常。我能够连接到 sql 服务器,但没有 运行 任何查询。我验证了所有驱动程序都在那里,并且 odbc 文件的 none 已更改。我可以在不同的环境中重现它并且工作正常。
$ export ODBCINI=/etc/alternatives/dmexpress/etc/odbc.ini
$ export ODBCSYSINI=/etc/alternatives/dmexpress/etc
$ export LD_LIBRARY_PATH=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib:/etc/alternatives/dmexpress/lib/:/opt/cloudera/impalaodbc/lib/64:/opt/cloudera/hiveodbc/lib/64
$ export PATH=/etc/alternatives/dmexpress/bin:/opt/cloudera/parcels/CDH/jars:$PATH
$ isql -v Hadoop_Monitoring_Dev $user $password
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> SELECT name FROM master.sys.databases
[60][DMExpress][ODBC 20101 driver]6091
[ISQL]ERROR: Could not SQLExecute
$ cat /etc/alternatives/dmexpress/etc/odbc.ini
[ODBC]
InstallDir=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib
Trace = Yes
TraceFile = /tmp/odbc.trace
[Hadoop_Monitoring_Dev]
Driver=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
Description=DataDirect SQL Server Wire Protocol
AlwaysReportTriggerResults=0
AnsiNPW=1
ApplicationUsingThreads=1
AuthenticationMethod=1
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
BulkLoadOptions=0
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
ConvWToUtf=1
Database=Hadoop_Monitoring_d10
DefaultLongDataBuffLen=1024
EnableBulkLoad=1
EnableQuotedIdentifiers=1
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=1
GSSClient=native
HostName=dbhadoopmonitoringd10
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
PacketSize=-1
Password=
Pooling=0
PortNumber=1460
QueryTimeout=0
ReportCodePageConversionErrors=0
SnapshotSerializable=0
ValidateServerCertificate=1
XMLDescribeType=-10
QEWSD=2457584
$ cat /etc/alternatives/dmexpress/etc/odbcinst.ini
[ODBC]
Trace = Yes
TraceFile = /tmp/odbcinst.trace
$ cat /etc/alternatives/dmexpress/etc/odbcinst.ini
# SQL Server driver.
[DataDirect SQL Server Wire Protocol]
Driver=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
APILevel=1
ConnectFunctions=YYY
DriverODBCVer=3.52
FileUsage=0
HelpRootDirectory=/help
Setup=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
SQLLevel=0
DMXODBCDRIVERMANAGER=NO
我确实得到了一个从 odbcinst.ini 调用的跟踪文件,但它告诉我的不多
$ cat odbcinst.trace
[ODBC][552119][1628599776.361874][__handles.c][460]
Exit:[SQL_SUCCESS]
Environment = 0x1dae750
[ODBC][552119][1628599776.362006][SQLAllocHandle.c][375]
Entry:
Handle Type = 2
Input Handle = 0x1dae750
[ODBC][552119][1628599776.362088][SQLAllocHandle.c][493]
Exit:[SQL_SUCCESS]
Output Handle = 0x1daf050
[ODBC][552119][1628599776.362155][SQLConnect.c][3700]
Entry:
Connection = 0x1daf050
Server Name = [Hadoop_Monitoring_Dev][length = 21 (SQL_NTS)]
User Name = [a00946r2][length = 8 (SQL_NTS)]
Authentication = [********][length = 8 (SQL_NTS)]
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'
DIAG [2] [DMExpress][ODBC 20101 driver][Microsoft SQL Server]Changed database context to 'Hadoop_Monitoring_d10'.
DIAG [2] [DMExpress][ODBC 20101 driver][Microsoft SQL Server]Changed language setting to us_english.
[ODBC][552119][1628599776.579031][SQLConnect.c][4273]
Exit:[SQL_SUCCESS_WITH_INFO]
[ODBC][552119][1628599776.579131][SQLGetFunctions.c][151]
Entry:
Connection = 0x1daf050
Id = SQLMoreResults
Supported = 0x607200
[ODBC][552119][1628599776.579187][SQLGetFunctions.c][186]
Exit:[SQL_SUCCESS]
Supported = 0x607200 -> 1
[ODBC][552119][1628599783.373310][SQLAllocHandle.c][540]
Entry:
Handle Type = 3
Input Handle = 0x1daf050
[ODBC][552119][1628599783.373510][SQLAllocHandle.c][1081]
Exit:[SQL_SUCCESS]
Output Handle = 0x1e4c8c0
[ODBC][552119][1628599783.373587][SQLPrepare.c][196]
Entry:
Statement = 0x1e4c8c0
SQL = [select count(*) from [Hadoop_Monitoring_d10].[dbo].[SCPT_EXEC]]
[length = 62]
[ODBC][552119][1628599783.374670][SQLPrepare.c][371]
Exit:[SQL_ERROR]
DIAG [60] [DMExpress][ODBC 20101 driver]6091
[ODBC][552119][1628599783.374814][SQLError.c][352]
Entry:
Statement = 0x1e4c8c0
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.374874][SQLError.c][389]
Exit:[SQL_SUCCESS]
SQLState = 60
Native = 0x7ffd0e17a2bc -> 6091
Message Text = [[DMExpress][ODBC 20101 driver]6091]
[ODBC][552119][1628599783.374941][SQLError.c][352]
Entry:
Statement = 0x1e4c8c0
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.374992][SQLError.c][389]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375042][SQLError.c][434]
Entry:
Connection = 0x1daf050
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.375105][SQLError.c][471]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375157][SQLError.c][514]
Entry:
Environment = 0x1dae750
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.375205][SQLError.c][551]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375276][SQLFreeStmt.c][144]
Entry:
Statement = 0x1e4c8c0
Option = 1
[ODBC][552119][1628599783.375331][SQLFreeHandle.c][381]
Entry:
Handle Type = 3
Input Handle = 0x1e4c8c0
[ODBC][552119][1628599783.375415][SQLFreeHandle.c][491]
Exit:[SQL_SUCCESS]
这是许可问题。我必须让 odbc.ini 可写,这样它才能写
qewsd
https://www.ibm.com/support/pages/what-does-qewsd-mean-odbcini-file
我正在尝试 运行 在 sql 服务器(源)上使用客户端服务器上的 isql 进行查询。 在客户端服务器上将 rhel6 升级到 rhel7 之前一切正常。我能够连接到 sql 服务器,但没有 运行 任何查询。我验证了所有驱动程序都在那里,并且 odbc 文件的 none 已更改。我可以在不同的环境中重现它并且工作正常。
$ export ODBCINI=/etc/alternatives/dmexpress/etc/odbc.ini
$ export ODBCSYSINI=/etc/alternatives/dmexpress/etc
$ export LD_LIBRARY_PATH=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib:/etc/alternatives/dmexpress/lib/:/opt/cloudera/impalaodbc/lib/64:/opt/cloudera/hiveodbc/lib/64
$ export PATH=/etc/alternatives/dmexpress/bin:/opt/cloudera/parcels/CDH/jars:$PATH
$ isql -v Hadoop_Monitoring_Dev $user $password
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> SELECT name FROM master.sys.databases
[60][DMExpress][ODBC 20101 driver]6091
[ISQL]ERROR: Could not SQLExecute
$ cat /etc/alternatives/dmexpress/etc/odbc.ini
[ODBC]
InstallDir=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib
Trace = Yes
TraceFile = /tmp/odbc.trace
[Hadoop_Monitoring_Dev]
Driver=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
Description=DataDirect SQL Server Wire Protocol
AlwaysReportTriggerResults=0
AnsiNPW=1
ApplicationUsingThreads=1
AuthenticationMethod=1
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
BulkLoadOptions=0
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
ConvWToUtf=1
Database=Hadoop_Monitoring_d10
DefaultLongDataBuffLen=1024
EnableBulkLoad=1
EnableQuotedIdentifiers=1
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=1
GSSClient=native
HostName=dbhadoopmonitoringd10
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
PacketSize=-1
Password=
Pooling=0
PortNumber=1460
QueryTimeout=0
ReportCodePageConversionErrors=0
SnapshotSerializable=0
ValidateServerCertificate=1
XMLDescribeType=-10
QEWSD=2457584
$ cat /etc/alternatives/dmexpress/etc/odbcinst.ini
[ODBC]
Trace = Yes
TraceFile = /tmp/odbcinst.trace
$ cat /etc/alternatives/dmexpress/etc/odbcinst.ini
# SQL Server driver.
[DataDirect SQL Server Wire Protocol]
Driver=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
APILevel=1
ConnectFunctions=YYY
DriverODBCVer=3.52
FileUsage=0
HelpRootDirectory=/help
Setup=/etc/alternatives/dmexpress/ThirdParty/DataDirect/lib/_Ssqls27.so
SQLLevel=0
DMXODBCDRIVERMANAGER=NO
我确实得到了一个从 odbcinst.ini 调用的跟踪文件,但它告诉我的不多
$ cat odbcinst.trace
[ODBC][552119][1628599776.361874][__handles.c][460]
Exit:[SQL_SUCCESS]
Environment = 0x1dae750
[ODBC][552119][1628599776.362006][SQLAllocHandle.c][375]
Entry:
Handle Type = 2
Input Handle = 0x1dae750
[ODBC][552119][1628599776.362088][SQLAllocHandle.c][493]
Exit:[SQL_SUCCESS]
Output Handle = 0x1daf050
[ODBC][552119][1628599776.362155][SQLConnect.c][3700]
Entry:
Connection = 0x1daf050
Server Name = [Hadoop_Monitoring_Dev][length = 21 (SQL_NTS)]
User Name = [a00946r2][length = 8 (SQL_NTS)]
Authentication = [********][length = 8 (SQL_NTS)]
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'
DIAG [2] [DMExpress][ODBC 20101 driver][Microsoft SQL Server]Changed database context to 'Hadoop_Monitoring_d10'.
DIAG [2] [DMExpress][ODBC 20101 driver][Microsoft SQL Server]Changed language setting to us_english.
[ODBC][552119][1628599776.579031][SQLConnect.c][4273]
Exit:[SQL_SUCCESS_WITH_INFO]
[ODBC][552119][1628599776.579131][SQLGetFunctions.c][151]
Entry:
Connection = 0x1daf050
Id = SQLMoreResults
Supported = 0x607200
[ODBC][552119][1628599776.579187][SQLGetFunctions.c][186]
Exit:[SQL_SUCCESS]
Supported = 0x607200 -> 1
[ODBC][552119][1628599783.373310][SQLAllocHandle.c][540]
Entry:
Handle Type = 3
Input Handle = 0x1daf050
[ODBC][552119][1628599783.373510][SQLAllocHandle.c][1081]
Exit:[SQL_SUCCESS]
Output Handle = 0x1e4c8c0
[ODBC][552119][1628599783.373587][SQLPrepare.c][196]
Entry:
Statement = 0x1e4c8c0
SQL = [select count(*) from [Hadoop_Monitoring_d10].[dbo].[SCPT_EXEC]]
[length = 62]
[ODBC][552119][1628599783.374670][SQLPrepare.c][371]
Exit:[SQL_ERROR]
DIAG [60] [DMExpress][ODBC 20101 driver]6091
[ODBC][552119][1628599783.374814][SQLError.c][352]
Entry:
Statement = 0x1e4c8c0
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.374874][SQLError.c][389]
Exit:[SQL_SUCCESS]
SQLState = 60
Native = 0x7ffd0e17a2bc -> 6091
Message Text = [[DMExpress][ODBC 20101 driver]6091]
[ODBC][552119][1628599783.374941][SQLError.c][352]
Entry:
Statement = 0x1e4c8c0
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.374992][SQLError.c][389]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375042][SQLError.c][434]
Entry:
Connection = 0x1daf050
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.375105][SQLError.c][471]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375157][SQLError.c][514]
Entry:
Environment = 0x1dae750
SQLState = 0x7ffd0e17a2c0
Native = 0x7ffd0e17a2bc
Message Text = 0x7ffd0e17a2d0
Buffer Length = 500
Text Len Ptr = 0x7ffd0e17a2ba
[ODBC][552119][1628599783.375205][SQLError.c][551]
Exit:[SQL_NO_DATA]
[ODBC][552119][1628599783.375276][SQLFreeStmt.c][144]
Entry:
Statement = 0x1e4c8c0
Option = 1
[ODBC][552119][1628599783.375331][SQLFreeHandle.c][381]
Entry:
Handle Type = 3
Input Handle = 0x1e4c8c0
[ODBC][552119][1628599783.375415][SQLFreeHandle.c][491]
Exit:[SQL_SUCCESS]
这是许可问题。我必须让 odbc.ini 可写,这样它才能写 qewsd https://www.ibm.com/support/pages/what-does-qewsd-mean-odbcini-file