У меня есть образ SQL Server Docker с именем microsoft/mssql-server-linux, который использовался для запуска базы данных SQL Server. У меня есть API, который я сделал вне Docker, и я безуспешно пытался создать строку подключения для подключения к этой базе данных.
Я успешно подключился к этой базе данных с помощью Azure Data Studio только со следующими параметрами подключения.
Connection Type: Microsoft SQL Server
Server: localhost
Username: (username I created)
Password: (password I created)
Я создал проект API, используя Feathersjs, и использую сиквел в качестве ORM. Вот как я пытался создать соединение.
const sequelize = new Sequelize(database, username, password, {
dialect: "mssql",
host: localhost,
encrypt: false,
logging: false,
operatorsAliases: false,
define: {
freezeTableName: true
},
dialectOptions: {
port: 1433
// instanceName: "NameOfTheMSSQLInstance"
}
});
Я использую порт 1433, потому что, когда я запускал «docker ps» в терминале, эта информация была указана в порту.
0.0.0.0:1433->1433/tcp
Я знаю, что имя пользователя и пароль верны, потому что я успешно подключаюсь через Azure Data Studio и несколько раз менял их в докере, чтобы убедиться, что это не проблема с учетными данными.
Я получаю следующее сообщение об ошибке при попытке подключения
ошибка: необработанный отказ в: Promise {"_bitField":18087936,"_fulfillmentHandler0":{"name":"SequelizeConnectionError","parent":{"message":"Не удалось подключиться к 172.17.0.2:1433 за 15000 мс", "code":"ETIMEOUT"},"original":{"message":"Не удалось подключиться к 172.17.0.2:1433 за 15000 мс","code":"ETIMEOUT"}},"name":"SequelizeConnectionError", "parent":{"message":"Не удалось подключиться к 172.17.0.2:1433 за 15000 мс","code":"ETIMEOUT"},"original":{"message":"Не удалось подключиться к 172.17.0.2: 1433 в 15000 мс", "код": "ETIMEOUT"}} ошибка: GeneralError: не удалось подключиться к 172.17.0.2:1433 в 15000 мс