如何从NodeJS / Tedious连接到SQL Azure?

时间:2013-04-16 22:01:29

标签: node.js azure-sql-database tedious

我有一个SQL Azure数据库,我试图从Azure Linux VM中运行的NodeJS应用程序连接到该数据库。当我在本地SQL数据库/本地机器上运行NodeJS时,一切正常。但是,当我从我的虚拟机运行时,我得到以下输出(我的跟踪输出加上繁琐的调试事件):

connected to XXXXXXX.database.windows.net:1433
State change: Connecting -> SentPrelogin
State change: SentPrelogin -> SentLogin7WithStandardLogin
connection to XXXXXXX.database.windows.net:1433 closed
State change: SentLogin7WithStandardLogin -> Final
Writing CSV files....
connection to XXXXXXX.database.windows.net:1433 closed
State change: Final -> Final
All Done!

问题是没有出现任何错误,但连接似乎会自动关闭。

有关此处可能发生的事情或我如何得出实际错误的任何想法?

2 个答案:

答案 0 :(得分:8)

好的 - 感谢this thread

解决了这个问题

有两个问题:

  1. SQL Azure需要加密连接,因此您需要在连接选项中加密:true
  2. userName配置选项需要数据库限定名称(例如user@XXXXXX.database.windows.net)
  3. 以防其他人遇到此问题:)

答案 1 :(得分:0)

我遇到了第三个问题,我认为值得分享。由于一些防火墙/ isp / port / etc问题,我不得不设置一个本地SQL实例来调试。

当我使用'数据库时,SQL Server 2014的本地实例有效。主树下的参数。但是,Azure实例只会使用'数据库'参数如果在'选项'。

之下
"sqlserverConfig": {
    "userName": "SomeUser@someazureserver.database.windows.net",
    "password": "SomePW",
    "server": "someazureserver.database.windows.net",
    "options": {
        "encrypt": true,
        "database": "SomeDatabase"
    }
  }

对我而言,我观察到的症状是我默认连接到主数据库 - 所以我的存储过程没有找到等等。非常令人沮丧。希望这有助于某人。