WedX - журнал о программировании и компьютерных науках

Не удалось подключить сервер mysql, работающий в контейнере докеров

Я запускаю сервер sql в контейнере докеров`

docker pull mysql/mysql-server:latest

docker run --name=my_sql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql/mysql-server:latest

docker exec -it my_sql mysql -u root -p

#Create table in mysql running in container.
CREATE DATABASE hello_java CHARACTER SET utf8 COLLATE utf8_general_ci;

Все это делается успешно. Теперь, когда я пытаюсь подключиться к базе данных с помощью Java, я получаю сообщение об ошибке.

String url = "jdbc:mysql://192.168.56.101:3306/hello_java";
DriverManager.getConnection(url, "root", "1234");
System.out.println("Connection establised....");

192.168.56.101 - это ip моей виртуальной машины. Я использую Linux на виртуальной машине.

Я получаю сообщение об ошибке сбоя канала связи.

Я погуглил и нашел несколько решений по следующим ссылкам, но ни одно из них не сработало для меня.

Устранение сбоя канала связи с помощью JDBC и MySQL

Как подключиться к базе данных MySQL, работающей как контейнер в докер?

Я внес изменения в файл /etc/my.cnf, но это не помогло.

Спасибо.

09.06.2020

  • Итак, у вас есть хост-ОС, внутри которой у вас есть виртуальная машина Linux (192.168.56.101), а внутри у вас есть док-контейнер MySQL, верно? Если вы подключитесь к виртуальной машине Linux по ssh, сможете ли вы подключиться с виртуальной машины Linux к MySQL с помощью клиента командной строки mysql? например mysql -u root -h 127.0.0.1 -p. Если да, можете ли вы подключиться из вашей ОС хоста к виртуальной машине Linux с помощью клиента mysql (CLI или GUI), чтобы убедиться, что порт 3306 открыт для виртуальной машины? 09.06.2020
  • Порт открыт. Я могу telnet 192.168.56.101 3306 из моей основной ОС. 192.168.56.101 - это IP моей виртуальной машины. 09.06.2020

Ответы:


1

Я сделал еще несколько RnD и нашел следующее решение.

String url = "jdbc:mysql://192.168.56.101:3306/mysql?allowPublicKeyRetrieval=true&useSSL=false";

Добавление allowPublicKeyRetrieval=true&useSSL=false к запросу помогло мне подключиться к базе данных.

Следующие ссылки были полезны для решения.

Соединение Java-MySql: получение открытого ключа запрещено

https://www.tutorialspoint.com/how-to-disable-installing-ssl-connection-without-server-s-identity-verification-is-not-recommended-warning-when-connecting-to-mysql-database-in-java

Спасибо.

09.06.2020
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]