Не удается подключиться к сокету для mysql, работающему под docker с хоста? - PullRequest
0 голосов
/ 15 февраля 2020

У меня mySQL работает в контейнере. Оно и мое приложение (в другом контейнере Docker) работают нормально. Сейчас я пытаюсь использовать iReport от Jaspersoft для разработки отчета. Мне удалось запустить iReport на хосте Ubuntu. Проблема в доступе к базе данных с хоста.

Это необходимо для использования iReport, и я просто не могу заставить работать соединение. Я попытался посмотреть на сокет mysql, но он не в обычном месте, поскольку mySQL находится в Docker контейнере. Я также работаю над тем, чтобы сервер JasperReports работал в другом контейнере. Но моя проблема заключается в подключении хоста к базе данных mySQL, работающей в Docker, через соединение JDB C.

здесь docker -compose.yml https://drive.google.com/open?id=1CY_tPmnot3zSab0BtLE1fJUC7sdD2tyA

Соединение, которое выбрал iReports, это jdb c: mysql: // localhost / substantiator. Когда я пытаюсь «проверить» это с помощью кнопки проверки базы данных iReport, я получаю всплывающее окно с запросом пароля. Я пытался использовать тот же комбо пользователь / пароль, который работает из моего приложения. Ошибка: SQL проблемы: сбой линии связи. При исследовании этого вопроса меня просят обновить путь к сокету mySQL в файле mysql cnf. Но в моей установке файл сокета не существует (потому что он в docker?). Так что я в тупике. Я рассматриваю возможность перехода на mariaDB. Любые идеи?

1 Ответ

0 голосов
/ 15 февраля 2020

Привет, ваш MySql контейнер открывает порт 3306 с хост-машины, которую вы можете подключить с помощью localhost, но для некоторых внешних служб вам нужно использовать IP-адрес хост-машины, а также убедиться, что порт 3306 открыт для внешних пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...