在Heroku上托管应用程序后无法连接到SQL Server

时间:2018-09-11 23:37:50

标签: javascript sql sql-server heroku

我正在使用mssql和node。 我调用一个函数来连接数据库:

const sql = require('mssql')
async () => {
   try {
      const pool = await sql.connect(`mssql://${process.env.DATAUSER}:${process.env.DATAPASS}@${process.env.SERVER}`)
   } catch(err) {
       console.log(err)
   }
} 

当我在localhost上但在将其托管到heroku并添加env变量后,这可以很好地工作。我得到的错误是(我将IP地址更改为5):

ConnectionError: Failed to connect to 55.5.5.555:1433 in 15000ms

我的process.env.SERVER = 55.5.5.555/SpecificDatabase,如果那意味着什么

1 个答案:

答案 0 :(得分:0)

在此代码中没有看到对您的特定数据库或架构的任何引用。就用户定向到的默认模式或数据库而言,数据服务器的本地实现可能与heroku实现不同。因此,您可能需要在连接调用中添加数据库或架构字段。

例如,我连接到OSU服务器的池代码是:

var mysql = require('mysql');
var pool = mysql.createPool({
  connectionLimit : 10,
  host            : 'classmysql.engr.oregonstate.edu',
  user            : 'username',
  password        : 'password',
  database        : 'database_name',
  multipleStatements: true
});
module.exports.pool = pool;

尽管我的实现是使用mysql而不是mssql进行的,但可以肯定的是,您需要显式命名特定的数据库或架构。