sqlalchemy + pymssql连接失败,初学者级别,恐怕

时间:2018-08-28 07:40:04

标签: python sqlalchemy pymssql

我决定扩展我的知识,并开始将python用于真实事物(已经在其他语言上编程了数十年)。由于我们使用Microsoft SQL Server作为我们的主数据库,因此能够在其中进行连接很重要。在同一台服务器上,使用PHP连接时我没有任何问题,因此不应有任何网络限制。

我有freetds.conf,它具有到数据库服务器的dbserver连接(我通常用于PHP),该服务器位于我们自己网络上的单独服务器上。

为了测试连接,我有一个小程序:

    from sqlalchemy import create_engine
    from sqlalchemy.orm import scoped_session, sessionmaker

    engine = create_engine(r"mssql+pymssql://{0}:{1}@dbserver/db_database?charset=utf8".format('user','p@ssw0rd'))

    def main():
        print("In main")
        connection=engine.connect()
        print("Connected")

if __name__ == "__main__":
    main()

程序在主屏幕上打印,但从不进入“已连接”。实际上,我在问两个问题:“如何调试此类问题”和/或“任何想法,什么可能导致这种情况”?当然,如果我做的事情很愚蠢,也请您指出来……

我正在使用Python 3.6运行它。

wbr

谢谢

1 个答案:

答案 0 :(得分:1)

我自己发现了错误。问题是我正在使用的SQL Server上有一个实例。尽管在freetds.conf中提到了实例端口,但我还必须将其添加到create_engine调用中。

create_engine的工作版本如下:

engine = create_engine(r"mssql+pymssql://{0}:{1}@dbserver:12345/db_database?charset=utf8".format('user','p@ssw0rd'))

其中12345是实例正在侦听的端口号。

很抱歉,我错过了一个关键的信息,但是如果我意识到这一点,我可能甚至都不会问-然后其他人以后可能会遇到同样的问题。

谢谢