【问题标题】:Connecting to MSSQL server with Sequelize使用 Sequelize 连接到 MSSQL 服务器
【发布时间】:2019-03-28 15:20:10
【问题描述】:

使用以下繁琐的代码,我可以成功连接到 Azure SQL Server。

const Connection = require('tedious').Connection;

const connection = new Connection({
    userName: '[USER]',
    password: '[PASSWORD]',
    server: '[HOSTNAME]',
    options: {encrypt: true}
});

connection.on('connect', (err) => {
    if (err) {
        console.log('error connecting', err);
    } else {
        console.log('connection successful');
    }
});

但是,使用应该是等效的 Sequelize 代码时,我收到了连接超时错误。

const Sequelize = require('sequelize');

const sequelize = new Sequelize('[DBNAME]', '[USER]', '[PASSWORD]', {
    dialect: 'mssql',
    host: '[HOSTNAME]',
    dialectOptions: {
        encrypt: true
    }
});

sequelize.authenticate().then((err) => {
    console.log('Connection successful', err);
})
.catch((err) => {
    console.log('Unable to connect to database', err);
});

有什么想法吗?

使用:sequelize 3.29.0,繁琐的1.14.0,SQL Server v12

【问题讨论】:

    标签: javascript sql-server azure sequelize.js


    【解决方案1】:

    我遇到了错误

    SequelizeConnectionError: Server requires encryption, set 'encrypt' config option to true.

    我使用 Azure SQL 数据库进行了尝试,以下方法对我有用。

    const sequelize = new Sequelize('DB Name', 'Username', 'Password', {
        host: 'Host',
        dialect: 'mssql',
        dialectOptions: {
            options: {
                encrypt: true,
            }
        }
      });
    

    【讨论】:

      【解决方案2】:

      如果您尝试使用 Azure SQL 数据库,您可能还需要指定更长的请求超时值:

      [...]
      dialectOptions: {
          requestTimeout: 30000 // timeout = 30 seconds
      }
      [...]
      

      【讨论】:

        【解决方案3】:

        我尝试了您的 Sequelize 代码,它运行良好。因此,您可能需要添加 客户端 IP 地址 以允许访问 Azure SQL Server。为此,请转到Azure portal,点击All Resources,选择您的SQL 服务器,点击SETTINGS 菜单中的Firewall

        您的客户地址方便地包含在列表中,因此您只需点击添加客户IP,然后点击保存。当您现在运行代码时,它应该会连接。

        【讨论】:

        • 我的客户端IP已经被添加到防火墙白名单中,这就是Tedious代码直接连接的方式。我的困惑来自为什么 Tedious 代码正确连接但 Sequelize 代码不是当 Sequelize 只是使用 Tedious 连接时。
        猜你喜欢
        • 2021-09-24
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多