【问题标题】:Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Data source name not found and no default driver specifiedSqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:未找到数据源名称且未指定默认驱动程序
【发布时间】:2019-12-11 20:51:22
【问题描述】:

尝试使用来自mssql-tools 包的sqlcmd(松散地遵循此处的文档:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-RHEL-6-or-Centos-7)并看到错误

Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:未找到数据源名称且未指定默认驱动程序。

即使我认为 DSN 和驱动程序都已指定(见下文)

[airflow@airflowetl ~]$
[airflow@airflowetl ~]$
[airflow@airflowetl ~]$ # trying to connect to DB via DSN (-S option)
[airflow@airflowetl ~]$ /opt/mssql-tools/bin/sqlcmd -Q "select count(*) from MYTABLE" -D -S "MyMSSQLServer" -U "myuser" -P "mypass" -d mydb -W -h-1 -k
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Data source name not found and no default driver specified.
[airflow@airflowetl ~]$
[airflow@airflowetl ~]$
[airflow@airflowetl ~]$ # checking odbc config files
[airflow@airflowetl ~]# odbcinst -j
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
[airflow@airflowetl ~]$ cat /etc/odbc.ini 
[MyMSSQLServer]
Driver=ODBC Driver 17 for SQL Server
Description=My MS SQL Server
Trace=No
Server=172.18.1.23

[airflow@airflowetl ~]$ cat /etc/odbcinst.ini 

[airflow@airflowetl ~]$ ls -lha /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1 
-rwxr-xr-x 1 root root 2.0M Sep 26 06:19 /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1

请注意,/etc/odbcinst.ini 在(我认为)它应该对应于 odbc.ini 文件中的驱动程序条目时是空白的。我应该手动填写吗?为什么在这种情况下它不自动填充(就像在我设置了 odbc 的其他机器上所做的那样)?

没有太多的 ODBC 设置经验,因此不知道如何解决此错误。有更多经验的人有任何进一步的调试技巧或知道如何修复吗?

【问题讨论】:

  • 根据以前机器上的 odbc* 文件手动填写 /etc/odbcinst.ini 似乎已经解决了问题。仍然不确定为什么 odbcinst.ini 文件没有自动填充。请参阅 serverfault.com/a/622088/456930。

标签: odbc sqlcmd


【解决方案1】:

【讨论】:

  • 是的。请参阅帖子中代码块的底部。根据之前设置过的机器上的 odbc* 文件手动填写 /etc/odbcinst.ini 似乎已经解决了这个问题。仍然不确定为什么 odbcinst.ini 文件没有自动填充。
猜你喜欢
  • 2010-09-21
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 2022-08-08
相关资源
最近更新 更多