Удаленное подключение к базе данных openshift

#mysql #openshift #openshift-client-tools

#mysql #openshift #openshift-клиент-инструменты

Вопрос:

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

Я попробовал переадресацию портов, которая выдает следующую ошибку (немецкая причина означает отсутствие прав доступа к сокету):

 oc port-forward mysql-database-1-rqhc8 3306:3306
E1001 09:34:33.103656    2936 portforward.go:202] Unable to create listener: Error listen tcp4 127.0.0.1:3306: bind: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
E1001 09:34:33.127445    2936 portforward.go:202] Unable to create listener: Error listen tcp6 [::1]:3306: bind: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
W1001 09:34:33.141973    2936 portforward.go:154] Unable to listen on port 3306: All listeners failed to create with the following errors: listen tcp4 127.0.0.1:3306: bind: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig., listen tcp6 [::1]:3306: bind: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig.
error: Unable to listen on any of the requested ports: [{3306 3306}]
  

Перенаправление портов на свободный порт работает нормально:

 oc port-forward mysql-database-1-rqhc8 :3306
I1001 09:35:02.760192    7792 portforward.go:213] Forwarding from 127.0.0.1:51231 -> 3306
I1001 09:35:02.775740    7792 portforward.go:213] Forwarding from [::1]:51231 -> 3306
  

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

Эти URL-адреса не работают:

 jdbc:mysql://<<my-domain.com>>:51231/maindatabase
jdbc:mysql://<<service-cluster-ip-address>>:51231/maindatabase
  

Ответ №1:

Ну, я только что узнал (случайно), что oc фактически перенаправляет порт на ваш собственный локальный компьютер.

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

Итак, для всех, кто совершает одну и ту же глупую ошибку, просто подключитесь к:

 jdbc:mysql://localhost:<<port>>/<<database-name>>