因此,我刚刚在 Openshift 上完成了 JBoss 应用服务器设备的设置,并附加了 MySQL 和phpmyadmin插件。我的问题是,是否有办法使用MySQL Workbench之类的应用程序远程访问数据库服务器?
5 回答
您可以使用rhc port-forward
将端口从数据库转发到本地计算机。在这里查看教程。在这种情况下,端口转发的基本思想是您可以将本地机器上的端口转发到设备上的端口。因此,在您的情况下,您会将本地计算机上的某些端口转发到 mysql 正在侦听您设备中的连接的端口。然后将 MySQL Workbench 连接到本地计算机上的端口。
使用 SSH 和 MysqlWorkbench
SSH 命令:(在 rhc ssh myappname 旁边)
echo $OPENSHIFT_MYSQL_DB_HOST
echo $OPENSHIFT_MYSQL_DB_PORT
echo $OPENSHIFT_MYSQL_DB_USERNAME
echo $OPENSHIFT_MYSQL_DB_PASSWORD
Mysql工作台
创建新连接:
设置连接名称
设置连接方式:标准 TCP/IP over SSH
填写 SSH 主机名 = 你的应用程序的主机,例如:“myappname-user.rhcloud.com”
SSH 用户名 = 您的应用程序的 UUID
SSH 密钥文件 = 在 Windows 上:C:\Users\XXX.ssh\id_rsa 在 OS X 上:/Users/XXX/.ssh/
单击“测试连接” .... 并使用 mysqlworkbench
此处使用 Linux解释了该解决方案:
rhc port-forward -a app &
rhc app show -a <app>
mysql -u <user> -h 127.0.0.1 -P 3307 -p
输入密码后,您将连接到 Openshift 上的远程 mysql。
通过 SSH 登录。
- 登录 SSH
- 出口 | grep MYSQL
- 查看 OPENSHIFT_MYSQL_DB_HOST 和 OPENSHIFT_MYSQL_DB_PORT 的值
例子:
[xxxxxxx.rhcloud.com xxxxxxx]\> export | grep MYSQL
declare -x OPENSHIFT_MYSQL_DB_GEAR_DNS="xxxxxxx-name.rhcloud.com"
declare -x OPENSHIFT_MYSQL_DB_GEAR_UUID="xxxxxxx"
declare -x OPENSHIFT_MYSQL_DB_HOST="xxxxxxx-name.rhcloud.com"
declare -x OPENSHIFT_MYSQL_DB_PASSWORD="nlxxxxxxx"
declare -x OPENSHIFT_MYSQL_DB_PORT="57176"
declare -x OPENSHIFT_MYSQL_DB_URL="mysql://adminxxxxxxx:nlqxxxxxxx-name.rhcloud.com:57176/"
declare -x OPENSHIFT_MYSQL_DB_USERNAME="adminxxxxxxx"
要在 Openshift 上远程访问 MySQL,您可以将 NodePort 或 LoadBalancer 配置为 Service 上的类型,而不是默认的 ClusterIP。这将允许外部 tcp 访问您的数据库。请注意,默认情况下将在 30000-32767 范围内定义一个节点端口,该范围将映射到目标端口。