更新:我已確認這只是使用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