Docker nodejs с сообщением mysql

Я использую 2 изображения докеров, одно с моим внутренним сервером nodeJS, другое с моей базой данных MySQL. В файле docker-compose я правильно определяю пароли, порты и имена хостов:

sql:
    image: mysql:5.7.22
    hostname: sql
    ports:
      - 3306:3306
    secrets:
      - db_root_pass
      - db_user_pass
    environment: 
      MYSQL_USER: user
      MYSQL_PASSWORD_FILE: /run/secrets/db_user_pass
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_pass
  provider:
    image: monokilho/app:dev
    hostname: provider
    ports:
      - 3000:3001
      - 9221:9229
    secrets:
      - db_user_pass
    command: node --inspect=0.0.0.0:9229 appModule.js

И в моем файле DB_config.js для NodeJS у меня есть такая настройка подключения:

db_config.host = 'sql';
db_config.port = '3306';
db_config.user = 'user';
db_config.password = fs.readFileSync('/run/secrets/db_user_pass', 'utf8');
db_config.database = 'app';
db_config.multipleStatements = true;

Проблема в том, что, хотя, используя эти точные конфигурации, докер прекрасно подключает Node к MySQL на моем локальном компьютере с Windows, когда я загружаю изображения на свой удаленный сервер Linux, я продолжаю получать:

Access denied for user 'user'@'8b2e56e566b2.network_default'

Я уже переделал секреты, попытался вручную добавить пароли в конфигурацию на NodeJS и ничего ... что делает его еще более странным, так это то, что если я перейду к контейнеру MySQL для прямого подключения или если я создам другой контейнер MySQL и удаленно подключусь он работает, поэтому я знаю, что ввод пароля в конфигурации MySQL правильный, и он принимает удаленные подключения.

Любое предложение, в чем может быть разница между окнами и Linux для такого поведения? Заранее спасибо.

PS: При необходимости windows 10, а дистрибутив linux ububtu 16.04.

Обновлено: в журналах mysql появляется ошибка отказа в доступе, поэтому докер nodejs может связаться с докером mysql, и сеть должна быть в порядке.

Может быть проблема в том, что у вашего пользователя для приложения Node нет действительного разрешения для сети, созданной Docker? Просто идея ...

Pritilender 12.07.2018 21:56

Извините, забыл указать в сообщении, что доступ запрещен, который я получаю, находится в журналах mysql, поэтому сеть работает нормально, и я могу связаться с сервером

Monokilho 13.07.2018 10:56
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
145
1

Ответы 1

По-видимому, конфигурация mysql игнорировала подлый \ n в файле паролей, позволяя ему нормально работать с подключением к командной строке, в то время как на nodejs это соединение было ошибочным.

Другие вопросы по теме