Sequelize не может подключиться к SQL Server через сеть - PullRequest
1 голос
/ 15 марта 2019

Моя настройка следующая:

У меня есть виртуальная машина, на которой запущены все процессы базы данных, назовем ее DB-VM.

В настоящее время я занимаюсь разработкой на своей собственной рабочей станции (полностью отсоединен от DB-VM, за исключением того, что мы находимся в одной сети.

Я создал допустимую строку подключения, проверенную другой службой подключения к базе данных в IIS и через файл свойств канала передачи данных (.udl)и соединение.

Connection String validation

Это соединение описывается строкой соединения как: Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=DB-VM\MY_DATABASE.

Я пытался вставить егов мою конфигурацию Sequelize следующим образом:

const sequelize = new Sequelize({
    dialect: 'mssql',
    dialectModulePath: 'sequelize-msnodesqlv8',

    dialectOptions: {
        connectionString: 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=DB-VM\MY_DATABASE',
        trustedConnection: true,
    }
});

А затем попытался выполнить аутентификацию через:

sequelize.authenticate().then(() => {
    console.log('Connection stablished successfully!');
}).catch(err => {
    console.log(err);
});

И эта ошибка выглядит следующим образом: Error description

Примечание: база данных использует динамические порты, поэтому я не могу указать порт через свойство port Примечание 2: Именованные каналы отключены в настройках моей базы данных, и я не уверен, чтоЯ смогуистек кровьюПримечание 3: База данных уже настроена для разрешения удаленных подключений (в настоящее время она используется через веб-страницу и работает нормально!

1 Ответ

0 голосов
/ 16 марта 2019

Согласно этой строке библиотека sequelize-msnodesqlv8 ожидает, что «Драйвер» будет частью строки подключения, в противном случае она пытается угадать. Кроме того, все примеры строк подключения here1 и here2 используют либо Server=myServerName\theInstanceName, либо просто Server=myServerName. Вместо Data Source=....

Итак, шаг 1 - исправить строку подключения. Вы можете попробовать один из примеров , например:

dialectOptions: {
    connectionString: 'Driver={SQL Server Native Client 10.0};Server=DB-VM;Database=MY_DATABASE;Trusted_Connection=yes;'
},

После этого, если вы получите новую ошибку, обновите вопрос.

...