我正在尝试使用Python中的SQLAlchemy连接到Azure数据库。
我的代码如下:
engine_azure = \
create_engine('mssql+pyodbc://{Server admin login}:{password}@{Server name}.database.windows.net:1433/{AdventureWorksLT}', echo=True)
我收到以下消息:
C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\connectors\pyodbc.py:92: SAWarning: No driver name specified; this is expected by PyODBC when using DSN-less connections
"No driver name specified; "
然后运行以下代码:
print(engine_azure.table_names())
我收到以下消息:
DBAPIError: (pyodbc.Error) ('01S00', '[01S00] [Microsoft][ODBC Driver Manager] Invalid connection string attribute (0) (SQLDriverConnect)')
5条答案
按热度按时间1l5u6lss1#
您的连接字符串有两个问题:
1.根据SQLAlchemy文档:
The delimeters must be URL escaped
(当使用传递精确pyodbc字符串时)。1.也不指定sql驱动程序名称。
您可以使用下面的代码,它在我这边工作得很好:
检测结果:
对于连接字符串,您可以通过Azure Portal -〉您的数据库-〉连接字符串(在本例中选择ODBC)来获取:
3okqufwl2#
这是我在Python3中使用的代码:
lawou6xi3#
我在
ODBC Driver 17 for SQL Server
中使用的Python3代码段。花了我一些时间来弄清楚这一切,特别是驱动程序版本和参数。此外,我需要在macOS上安装以下驱动程序/工具:
sqyvllje4#
到目前为止,没有一个解决方案对我有效。
相反,我必须指定运行良好的驱动程序({SQL Server})。
资料来源:
https://gist.github.com/timmyreilly/f4a351eda5dd45aa9d56411d27573d7c
gwbalxhn5#
步骤1:安装Azure SQL DB驱动程序
使用正式文档安装新版本的SQL DB驱动程序:第一个
对先前答案的重大更新:使用最新支持的DB驱动程序版本
ODBC Driver 17 for SQL Server
,而不是过时的版本ODBC Driver 13 for SQL Server
或没有明确定义版本的版本,例如SQL Server
。步骤2:安装sqlalchemy package
只需在终端中打印:
pip install SQLAlchemy
步骤3:在
AzureDbConnection
类中 Package 特定的DB逻辑对先前答案的重大更新:不要忘记关闭连接并在不再需要数据库引擎时立即显式地将其丢弃。
享受吧!
使用Azure门户上的Azure DB刀片设置连接设置和凭据:
打开数据库连接:
测试连接(例如,获取可用表列表),执行其他操作,最后关闭连接: