【发布时间】:2019-04-24 16:07:30
【问题描述】:
使用带有 Raspbian 9 的 Raspberry Pi,我正在尝试使用带有 FreeTDS(版本 108)的 ODBC(pip 从 shell 安装它)连接到 Azure SQL 数据库
到目前为止,我已经尝试了以下方法:
在/etc/odbcinst.ini:
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/odbc/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
在我的/etc/odbc.ini
[name]
Driver=FreeTDS
ServerName = {MyServerString from Azure MS-SQL}
Database = {My database name from Azure MSQ-SQL}
TDS_Version = auto
在FreeTDS.config 文件中:
创建了这个块:
[name]
host = {MyServerString from Azure MSQ SQL}
port = 1433
tds version = auto
当我运行以下命令时:
tsql -S {name} -U {my_username} -P {my_password}
我得到结果
No errors ( 1> )
所以我相信我已经连接到数据库了。
但是,当我运行我的 Python 代码时。我得到一个错误。我的数据库连接块在下面
#Database setup
conDEBUG = "DRIVER={FreeTDS};Database={MyDGName};SERVER=tcp:{MyDB}.database.windows.net;UID={myUID};PWD={myPWD}"
conDEBUG = urllib.parse.quote_plus(conDEBUG)
conDEBUG = "mssql+pyodbc:///?odbc_connect=%s" % conDEBUG
app.config['SQLALCHEMY_DATABASE_URI'] = conDEBUG
db = SQLAlchemy(app)
我也尝试将 'TDS_Version=auto' 添加到 conDEBUG 字符串,这也不起作用。
我得到的具体错误:
('08001', '[08001] [unixODBC][FreeTDS][SQL Server]无法连接到数据源 (0) (SQLDriverConnect)')
【问题讨论】:
-
尝试从
SERVER=tcp:{MyDB}.database.windows.net中删除tcp:。protocol:servername受 Microsoft 的 SQL Server ODBC 驱动程序支持,但不受 FreeTDS ODBC 支持。 -
试过了。没有成功..同样的错误
标签: sql-server tsql raspbian pyodbc freetds