【问题标题】:Openshift: How to remote access MySQL?Openshift:如何远程访问 MySQL?
【发布时间】:2013-11-14 00:02:43
【问题描述】:

所以我刚刚在 Openshift 上设置了一个 JBoss 应用服务器设备,并附加了一个 MySQL 和 phpmyadmin 磁带。我的问题是,是否有办法使用像 MySQL Workbench 这样的应用程序远程访问数据库服务器?

【问题讨论】:

  • 基本上但从远程代替
  • 我认为可以设置 mySQL 以允许远程连接,而不会遇到很多困难。几年前我看到了一个脚本,它可以在没有密码的情况下闯入数据库,但它位于本地主机上。我认为可以使用配置中的 SQL 服务器的远程 IP 地址连接 phpmyadmin
  • 哈哈,我不想在这里惹麻烦。正确的步骤应该是合法的。

标签: mysql mysql-workbench openshift


【解决方案1】:

您可以使用rhc port-forward 将端口从您的数据库转发到您的本地计算机。查看教程here。在这种情况下,端口转发的基本思想是您可以将本地机器上的端口转发到设备上的端口。因此,在您的情况下,您会将本地计算机上的某些端口转发到 mysql 正在侦听您设备中的连接的端口。然后将 MySQL Workbench 连接到本地计算机上的端口。

【讨论】:

  • 你有关于如何做到这一点的链接吗?之前看过一些东西,但是没看懂
  • @Mtn_Wolf,查看我的编辑。如果您需要更多信息,请告诉我。
  • port-forwarding 似乎不是一个永久的解决方案。我有一个需要与数据库通信的独立应用程序。我该怎么做?
  • 端口转发是一种永久性解决方案。
  • 我必须在我的服务器或本地机器上进行端口转发吗?
【解决方案2】:

使用 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

MysqlWOrkbench

创建新连接:

设置连接名称

设置连接方式:标准 TCP/IP over SSH

填写 SSH 主机名 = 你的应用程序的主机,例如:“myappname-user.rhcloud.com”

SSH 用户名 = 应用的 UUID

SSH 密钥文件 = 在 Windows 上:C:\Users\XXX.ssh\id_rsa 在 OS X 上:/Users/XXX/.ssh/

单击“测试连接” .... 并使用 myqlworkbench

【讨论】:

  • 我个人更喜欢这个而不是转发端口。谢谢!我也将 127.0.01 作为端口,但回显 $OPENSHIFT_MYSQL_DB_HOST 为我节省了一天! PS:我用 Sequel Pro 试过了。
  • 我不敢相信这行得通。尤其是在 Windows 上……太棒了
【解决方案3】:

解决方案解释here使用Linux:

rhc port-forward -a app &

rhc app show -a <app>

mysql -u <user>  -h 127.0.0.1 -P 3307 -p

输入密码后,你就连接到Openshift上的远程mysql了。

【讨论】:

    【解决方案4】:

    通过 SSH 登录。

    1. SSH 登录
    2. 出口 | grep MYSQL
    3. 查看 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"
    

    【讨论】:

      【解决方案5】:

      要在 Openshift 上远程访问 MySQL,您可以将 NodePort 或 LoadBalancer 配置为 Service 上的类型,而不是默认的 ClusterIP。这将允许外部 tcp 访问您的数据库。请注意,默认情况下将在 30000-32767 范围内定义一个节点端口,该范围将映射到目标端口。

      【讨论】:

      • 最初的问题是关于 OpenShift 2,而不是 OpenShift 3。
      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多