“[unixODBC][驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序”尽管 /etc/odbc.ini 具有 DSN
"[unixODBC][Driver Manager]Data source name not found, and no default driver specified" despite /etc/odbc.ini having the DSN
尽管 /etc/odbc.ini
在连接字符串中引用了 DSN,但仍获取 "[unixODBC][Driver Manager]Data source name not found, and no default driver specified"
。为什么会发生这种情况,可以做什么?
正在尝试设置 pyodbc
以使用 docs (centos 7) 连接到 MSSQLServer。然而,当尝试实际连接到数据库时,
import pyodbc
# setup db connection
server = 'myserver'
database = 'mydb'
username = 'myusername'
password = 'mypassword'
cnxn_str = 'DSN=MyMSSQLServer;DATABASE='+database+'UID='+username+'PWD='+password+'MultipleActiveResultSets=True;'
cnxn = pyodbc.connect(cnxn_str)
出现错误 "[unixODBC][Driver Manager]Data source name not found, and no default driver specified"
,即使 运行:
[mapr@mnode01 ~]$ cat /etc/odbc.ini
[MyMSSQLServer] Driver=ODBC Driver 13 for SQL Server
Description=My MS SQL Server
Trace=No
Server=<now using my sql server ip>
我可以看到我在 python 代码中引用的 DSN 记录在 /etc/odbc.ini
文件中。有谁知道这里会发生什么?谢谢。
注意:我最初运行 pyodbc 设置完全按照docs, but later re-did this 步骤中的指定使用sql 的IP 地址我想连接的服务器:
vi /home/user/odbcadd.txt
[MyMSSQLServer] Driver = ODBC Driver 13 for SQL Server
Description = My MS SQL Server
Trace = No
Server = <my sql server ip>
然后重新运行写入odbc.ini
:
sudo odbcinst -i -s -f /home/user/odbcadd.txt -l
用户Gord Thompson评论的解决方案解决了我的问题。我用来填充 /etc/odbc.ini
文件的 ~/odbcadd.txt
文件需要 'Driver=' 行与 DSN 分开,看起来像:
[mapr@mnode01 ~]$ cat /etc/odbc.ini
[MyMSSQLServer]
Driver=ODBC Driver 13 for SQL Server
Description=My MS SQL Server
Trace=No
Server=172.18.4.38
尽管 /etc/odbc.ini
在连接字符串中引用了 DSN,但仍获取 "[unixODBC][Driver Manager]Data source name not found, and no default driver specified"
。为什么会发生这种情况,可以做什么?
正在尝试设置 pyodbc
以使用 docs (centos 7) 连接到 MSSQLServer。然而,当尝试实际连接到数据库时,
import pyodbc
# setup db connection
server = 'myserver'
database = 'mydb'
username = 'myusername'
password = 'mypassword'
cnxn_str = 'DSN=MyMSSQLServer;DATABASE='+database+'UID='+username+'PWD='+password+'MultipleActiveResultSets=True;'
cnxn = pyodbc.connect(cnxn_str)
出现错误 "[unixODBC][Driver Manager]Data source name not found, and no default driver specified"
,即使 运行:
[mapr@mnode01 ~]$ cat /etc/odbc.ini
[MyMSSQLServer] Driver=ODBC Driver 13 for SQL Server
Description=My MS SQL Server
Trace=No
Server=<now using my sql server ip>
我可以看到我在 python 代码中引用的 DSN 记录在 /etc/odbc.ini
文件中。有谁知道这里会发生什么?谢谢。
注意:我最初运行 pyodbc 设置完全按照docs, but later re-did this 步骤中的指定使用sql 的IP 地址我想连接的服务器:
vi /home/user/odbcadd.txt
[MyMSSQLServer] Driver = ODBC Driver 13 for SQL Server
Description = My MS SQL Server
Trace = No
Server = <my sql server ip>
然后重新运行写入odbc.ini
:
sudo odbcinst -i -s -f /home/user/odbcadd.txt -l
用户Gord Thompson评论的解决方案解决了我的问题。我用来填充 /etc/odbc.ini
文件的 ~/odbcadd.txt
文件需要 'Driver=' 行与 DSN 分开,看起来像:
[mapr@mnode01 ~]$ cat /etc/odbc.ini
[MyMSSQLServer]
Driver=ODBC Driver 13 for SQL Server
Description=My MS SQL Server
Trace=No
Server=172.18.4.38