У меня есть две службы докера, одна из которых работает с сервером простых узлов, а другая - с сервером базы данных mysql (фактически, mariadb).
Все экземпляры файла сокетов, упомянутые где-либо в / etc / mysql / say
/var/run/mysqld/mysqld.sock
Это будет важно в ближайшее время.
На моем сервере узлов выполняется некоторый код Sequelize, который пытается подключиться к серверу MySQL.
Всякий раз, когда я пытаюсь подключитьсячерез Sequelize я получаю:
{"statusCode":500,"error":"Internal Server Error","message":"connect ENOENT /var/run/mysqld/mysqld.sock"}
Однако, если я войду в Docker-контейнер Node, я смогу успешно подключиться к MySQL в другом Docker-контейнере с помощью клиента CLI mysql.
Я думаюЯ понимаю, что клиент MySQL использует TCP-соединение, в то время как Sequelize использует сокет-соединение.Но когда Sequelize выдает эту ошибку, он показывает правильный путь к сокету, насколько я знаю.Вот мой конфиг Sequelize:
const options = {
host: "mysql",
dialect: "mysql",
dialectOptions: {
socketPath: "/var/run/mysqld/mysqld.sock"
}
};
let sequelize = new Sequelize("ibbr_dev", "devuser", "password", options);