我正试图远程连接到我的Openshift v3 mysql数据库。根据我的理解,如果没有适当的配置,这是不可能的,因为服务无法从外部本地访问。
我尝试端口转发,这给了我以下错误(德语原因翻译为缺少套接字访问权限):
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
嗯,我只是(偶然地)发现oc实际上将端口转发到您自己的本地机器。
这正是文档中所说的,我只是不敢相信它实际上会这样做。
所以对于每个犯同样愚蠢错误的人,只要连接到:
jdbc:mysql://localhost:<<port>>/<<database-name>>