更新:我已确认这只是使用Azure SQL实例时的一个问题。我可以使用相同的连接字符串连接到本地,网络和远程SQL(AWS)实例 - 连接到Azure时只会失败。我可以使用其他工具(如Management Studio)连接到Azure实例。使用pymssql的Python/Flask/sqlAlchemy环境中的Adaptive Server连接失败错误
我正在构建一个小型Python(3.4.x)/ Flask应用程序。我在这里是一个完整的noob,所以如果我在发布中违反任何规则,请原谅我。
我已经创建了数据库引擎:
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('mssql+pymssql://dbadmin:[email protected]/databasename?charset=utf8')
db_session = scoped_session(sessionmaker(autocommit = False, autoflush = False, bind = engine))
Base = declarative_base()
Base.query = db_session.query_property()
def init_db():
import models
Base.metadata.creat_all(bind=engine)
一切都建立/在运行时能够正确地解释,但我得到上运行的查询时出现错误:
usr = User.query.filter_by(username=form.user.data).first()
的错误是:
sqlalchemy.exc.OperationalError: (OperationalError) (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n') None None
包包括:Flask == 0.10.1,pymssql == 2.1.1,SQLAlchemy == 0.9.8
在此先感谢。
你对这个错误信息做了一些研究吗?如果是这样 - 为什么结果不令人满意(所以我们不重复你的努力)? – 2015-02-17 22:38:06
是的,谢谢。我发现的一切似乎都围绕着freeTDS版本问题,但是,我不确定它的相关性(除了它提供了相同的错误信息)。我的理解是,freeTDS是一套用于* nix盒子的库,允许他们说MS SQL服务器。我正在开发,测试并将应用程序部署到基于Windows的环境。 – BoredTech 2015-02-17 22:45:20
你有你的C:\ freetds.conf文件。看到http://pymssql.org/en/latest/freetds.html – darwindave 2015-02-18 04:57:15