html - head - body - div - ul - li - dt - span - input
connection = pyodbc.connect('Driver = {SQL Server}; Server = SIWSQL43A \ SIMSSPROD43A;' pyodbc.Error:('IM002','[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序(0)(SQLDriverConnect)')
答案 0 :(得分:9)
不要在连接字符串中的Driver
关键字后面加一个空格。
这在Windows上失败了......
conn_str = (
r'DRIVER = {SQL Server};'
r'SERVER=(local)\SQLEXPRESS;'
r'DATABASE=myDb;'
r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)
......但这有效:
conn_str = (
r'DRIVER={SQL Server};'
r'SERVER=(local)\SQLEXPRESS;'
r'DATABASE=myDb;'
r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)
答案 1 :(得分:4)
我遇到了同样的问题并修改了更改连接字符串,如下所示。 写
'DRIVER={ODBC Driver 13 for SQL Server}'
而不是
'DRIVER={SQL Server}'
答案 2 :(得分:4)
本地 Ms Sql 数据库服务器需要或 {ODBC driver 17 for SQL Server} Azure Sql 数据库需要{ODBC 驱动程序 13 for SQL SERVER}
在此处检查已安装的驱动程序 => Installed ODBC Drivers
连接到 Azure Sql 数据库的格式是:
import pyodbc
conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};'
'SERVER=tcp:nameServer.database.windows.net,1433;'
'DATABASE=Name database; UID=name; PWD=password;')
连接到 Ms SQL 数据库本地的格式:
import pyodbc
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=server.name;' // example Doctor-Notebook\\MSSQLEXPRESS
'DATABASE=database.name; Trusted_connection = yes')
答案 3 :(得分:2)
我正在使用
Django 2.2
,并且在连接到 sql-server 2012 时遇到了相同的错误。花了很多时间来解决这个问题,终于成功了。
我改变了
'驱动程序':'用于SQL Server的ODBC驱动程序13'
到
“驱动程序”:“ SQL Server本机客户端11.0”
它奏效了。
答案 4 :(得分:1)
您需要为 SQL Server 下载 Microsoft ODBC Driver 13 来自Microsoft ODBC Driver 13
答案 5 :(得分:1)
我也遇到同样的错误。终于我找到了解决方案。
我们可以在本地程序中搜索odbc并检查odbc的版本。就我而言,我有版本17和11。我已经在连接字符串中使用了17
'DRIVER = {用于SQL Server的ODBC驱动程序17}'
答案 6 :(得分:1)
除了其他考虑连接字符串本身的答案外,可能仅需要下载正确的odbc驱动程序。我的客户在执行python应用程序时就遇到了这个问题,需要它。 您可以通过按Windows +键入“ odbc”来进行检查。 正确的驱动程序应显示在驱动程序选项卡中。
答案 7 :(得分:1)
下面的代码很神奇。
SQLALCHEMY_DATABASE_URI = "mssql+pyodbc://<servername>/<dbname>?driver=SQL Server Native Client 11.0?trusted_connection=yes?UID" \
"=<db_name>?PWD=<pass>"
答案 8 :(得分:1)
为您的连接创建一个类似这样的DSN(ASEDEV),并尝试使用DSN代替如下所示的DRIVER:
enter code here
import pyodbc
cnxn = pyodbc.connect('DSN=ASEDEV;User ID=sa;Password=sybase123')
mycur = cnxn.cursor()
mycur.execute("select * from master..sysdatabases")
row = mycur.fetchone()
while row:
print(row)
row = mycur.fetchone()`
答案 9 :(得分:0)
您是否已在系统计算机中安装任何SQL产品? 您可以下载并安装“ SQL Server ODBC驱动程序13(或任何版本)”,如果还没有完成,请尝试运行。
答案 10 :(得分:0)
我整天都面临着同一问题,我尝试了所有可能的ODBC Driver
值
import pyodbc
connection = pyodbc.connect('Driver = {SQL Server};Server=ServerName;'
'Database=Database_Name;Trusted_Connection=yes;')
我们可以代替Driver = {SQL Server}
一次尝试这些选项,或者您可以使用相应的设置,就我而言,最后一个可行:)
Driver={ODBC Driver 11 for SQL Server} for SQL Server 2005 - 2014
Driver={ODBC Driver 13 for SQL Server} for SQL Server 2005 - 2016
Driver={ODBC Driver 13.1 for SQL Server} for SQL Server 2008 - 2016
Driver={ODBC Driver 17 for SQL Server} for SQL Server 2008 - 2017
Driver={SQL Server} for SQL Server 2000
Driver={SQL Native Client} for SQL Server 2005
Driver={SQL Server Native Client 10.0} for SQL Server 2008
Driver={SQL Server Native Client 11.0} for SQL Server 2012
答案 11 :(得分:0)
我在python3上遇到了同样的错误,这对我有帮助:
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=YourServerName;'
'DATABASE=YourDatabaseName;UID=USER_NAME;PWD=PASS_WORD;')
请记住,python是区分大小写的,因此您必须以大写形式提及DRIVER,SERVER...。 您可以访问此链接以获取更多信息:
答案 12 :(得分:0)
下面的连接字符串有效
import pandas as pd
import pyodbc as odbc
sql_conn = odbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=SERVER_NAME;DATABASE=DATABASE_NAME;UID=USERNAME;PWD=PASSWORD;')
query = "SELECT * FROM admin.TABLE_NAME"
df = pd.read_sql(query, sql_conn)
df.head()
答案 13 :(得分:0)
尝试以下方法:
import pyodbc
server = 'servername'
database = 'DB'
username = 'UserName'
password = 'Password'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM Tbl')
for row in cursor:
print('row = %r' % (row,))
答案 14 :(得分:0)
对于错误:pyodbc.InterfaceError :(“ IM002”,“ [IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称未找到且未指定默认驱动程序(0)(SQLDriverConnect)”)
驱动程序和事件之间没有空格
连接= Driver={SQL Server Native Client 11.0};
"Server=servername;"
"Database=dbname;"
"Trusted_Connection=yes;"
答案 15 :(得分:0)
我遇到了这个问题,正在寻找解决方案。最后,我尝试了https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Windows中的所有选项,并且对于我的MSSQL 12,仅“ {SQL Server的ODBC驱动程序11}”有效。只需一一尝试。第二个重要的事情是您必须获得正确的服务器名称,因为我很珍贵地认为在所有情况下都需要设置\ SQLEXPRESS,但是发现您必须完全设置服务器属性中显示的内容。屏幕截图上的示例:
答案 16 :(得分:0)
您可以尝试:
import pyodbc
# Using a DSN
cnxn = pyodbc.connect('DSN=odbc_datasource_name;UID=db_user_id;PWD=db_password')
注意:您将需要知道“ odbc_datasource_name”。在Windows中,您可以搜索ODBC数据源。名称看起来像这样:
答案 17 :(得分:-1)
如果有人试图访问以azure托管的数据库,请尝试将该驱动程序指定为SQL Server的ODBC Driver 17
答案 18 :(得分:-1)
确保安装了所有驱动程序和数据库引擎
https://www.microsoft.com/en-us/download/details.aspx?id=54920