【问题标题】:Remote connect to clearDB heroku database远程连接到 clearDB heroku 数据库
【发布时间】:2012-04-07 00:23:24
【问题描述】:

如何使用 MySQL 查询浏览器在 heroku 上执行远程连接到 ClearDB MySQL 数据库。从哪里获取 url、端口、登录名和密码?

【问题讨论】:

    标签: mysql database heroku database-connection


    【解决方案1】:

    所有详细信息都将在数据库 URL 中,可以在 heroku config 中找到。假设您可以直接连接到 ClearDB(我从未尝试过),这些应该就是您所需要的......

    【讨论】:

    • 不完全。如果您使用 Spring / Java 配置,则文档会说“此变量是动态的,并且在运行 heroku config 时不会出现在您的配置变量列表中”,您必须使用命令“heroku run echo \$JDBC_DATABASE_URL”才能检索运行配置。参考devcenter.heroku.com/articles/…
    【解决方案2】:

    在 heroku 网站中,转到我的应用程序并选择您安装了 ClearDB 的应用程序。

    点击右上角的Addons,然后选择ClearDB MySQL Database。 到达那里后,单击您的数据库并选择“端点信息”选项卡。在那里你会看到你的用户名/密码。可以通过运行获取数据库的 URL heroku config --app <YOUR-APP-NAME> 在命令行中。

    就我而言,它类似于:mysql://user:pass@us-cdbr-east.cleardb.com/DATABASE?reconnect=true 您需要的是这部分:us-cdbr-east.cleardb.com

    【讨论】:

    • 您也可以直接在 Heroku 仪表板/网站上看到这一点,只需转到您的应用,点击“设置”和“显示配置变量”。
    • 至少在我的情况下,us-cdbr-east.cleardb.com 的等效部分不是数据库的名称,而是主机的名称。然而,在 ClearDB 插件的仪表板上找到了数据库名称。
    • 您需要将本地数据库文件导出到 Heroku 创建的数据库。只要关注这个视频,你就会很高兴youtube.com/watch?v=mBCH9OTVaGw&t=6s
    【解决方案3】:

    你运行 heroku config 来获取CLEARDB_DATABASE_URL,它应该是这种格式:

    CLEARDB_DATABASE_URL => mysql://[username]:[password]@[host]/[database name]?reconnect=true
    

    所以基本上你只需查看你自己的 url 并从那里得到你想要的一切。这就是我设置mysql工作台的方式。

    【讨论】:

    • 谢谢@Andrei,但是数据库的端口呢?
    • @BKSpureon。我让它使用默认端口与 phpMyAdmin 一起工作(请参阅stackoverflow.com/a/22092539/4900327
    • 非常感谢先生。它帮助我成功地将我的mysql文件部署到heroku
    • @AbhishekDivekar 您的评论对我帮助很大。我刚刚在我的 xamp 中的 congig.inc.php 文件中更改了用户名和一些内容,它在 PHPMyAdmin 上运行。
    【解决方案4】:

    是的,你可以直接连接到 ClearDB,实际上我使用 Workbench 连接。然后你可以为你的 localhost 和 heroku 使用相同的数据库。

    【讨论】:

    • 很高兴知道,但这如何帮助 OP 找到他们的连接信息?
    • 你是对的,但我只是添加了一个信息,因为 Neil Middleton 说“假设你可以直接连接到 ClearDB”,然后我只是说是的,他可以。对于回答对主要问题没有帮助的内容,我深表歉意。
    • 不用担心。像这样的东西真的是很好的评论材料,但看起来你还需要更多的代表。
    • 我有 0 个问题 gettig 到 heroku 服务。但是从服务到数据库是问题所在。嘘。 gettig "拨号 tcp 127.0.0.1:3306:getsockopt:连接被拒绝"
    【解决方案5】:

    我做了一个视频,解释如何在 Heroku 服务器上使用 NodeJS 连接到 MySql,看看:

    http://www.youtube.com/watch?v=2OGHdii_42s

    这是你想看的代码:

    https://github.com/mescalito/MySql-NodeJS-Heroku

    下面是部分代码:

    var express = require("express");
    var mysql      = require('mysql');
    var app = express();
    app.use(express.logger());
    
    var connection = mysql.createConnection({
      host     : 'us-cdbr-east-04.cleardb.com',
      user     : 'b6d6c6e874',
      password : 'b3f7###',
      database : 'heroku_1daa39da0'
    });
    
    connection.connect();
    
    app.get('/', function(request, response) {
      connection.query('SELECT * from t_users', function(err, rows, fields) {
          if (err) {
            console.log('error: ', err);
            throw err;
          }
          response.send(['Hello World!!!! HOLA MUNDO!!!!', rows]);
        });
    });
    
    var port = process.env.PORT || 5000;
    app.listen(port, function() {
      console.log("Listening on " + port);
    });
    

    干杯! 魔法:http://makegif.com/g9yv.gif

    【讨论】:

    • 不知道为什么这会受到如此严重的反对。您的 createConnection 为我清理了一切。谢谢:)
    • 还应提供否决票的原因。这是帮助我的答案。谢谢,兄弟!
    • 但是你如何让它与ssl选项一起工作?
    【解决方案6】:

    将其粘贴到终端中:

    heroku config | grep CLEARDB_DATABASE_URL
    

    【讨论】:

      【解决方案7】:

      您可以使用此单线连接到终端中的 MySQL 数据库。

      $(ruby -e 'require "uri"; uri = URI.parse(ARGV[0]); puts "mysql -u#{uri.user} -p#{uri.password} -h#{uri.host} -D#{uri.path.gsub("/", "")}"' `heroku config:get CLEARDB_DATABASE_URL`)

      【讨论】:

        【解决方案8】:

        将此命令粘贴到终端

          heroku config | grep CLEARDB_DATABASE_URL
        

        在此之后,您将获得数据库 URL。例如,这是您的 cleardb 数据库 URL。

        'mysql://b0600ea495asds:9cd2b111@us-cdbr-hirone-west-
         06.cleardb.net/heroku_4a1dc3673c4114d?reconnect=true'
        

        这将是您的数据库凭据。 (摘自以上网址)

        用户名 = b0600ea495asds

        密码 = 9cd2b111

        HOST = us-cdbr-hirone-west- 06.cleardb.net

        数据库名称 = heroku_4a1dc3673c4114d

        【讨论】:

          【解决方案9】:

          在 heroku 上转到您的应用,然后点击“设置”标签。然后单击第二个选项上的按钮“显示配置变量”。

          您应该会在 CLEARDB_DATABASE_URL 变量下找到类似这样的内容...

          mysql://[用户名]:[密码]@[主机]/[数据库名]?reconnect=true

          所以 [主机部分] 是您的主机。 [数据库名称] 部分当然是您的数据库名称。

          您仍然需要您的用户名和密码。返回 heroku 中的“概述”选项卡。转到已安装的附加组件部分中的 ClearDB 附加组件。单击您要访问的数据库(那里可能只有 1 个选项)。单击“系统信息”选项卡。您应该会看到您的用户名和密码。

          这应该是您访问数据库所需的全部内容。我用的是sequel pro。我刚刚将该信息(名称、主机、“标准”选项卡插入,我就可以开始了。

          【讨论】:

            【解决方案10】:

            所有这些对我来说都很完美。使用 heroku 配置 | grep,如上所述,然后只需将另一个条目添加到我的 config.inc.php 供 phpMyAdmin 使用,我就可以远程访问我的 cleardb 数据库。它让我不必在本地拥有 SQL 并在 Heroku 中使用 postgres。

            【讨论】:

              【解决方案11】:

              如果您使用的是 mySQL 工作台,请遵循此架构。转到 Heroku > Your Applications Settings > Config Vars,然后显示长 URL。该 url 包括您的用户名、密码、数据库的 URL 和默认架构。如下粘贴所有信息,即可成功连接数据库。在这个线程上没有关于如何使用 mySQL 工作台连接到 ClearDB 的真正解释,所以希望这可以帮助那些正在苦苦挣扎的人。

              【讨论】:

              • 我尝试了这个解决方案,但这不起作用。但是这个解决方案在 Sequal Pro 中运行良好。
              • 你从哪里获取架构字符串?
              【解决方案12】:

              应该考虑在heroku配置中获取vars的凭证(Config Vars):

              CLEARDB_DATABASE_URL

              【讨论】:

                【解决方案13】:

                对于 Windows 用户,没有 grep 命令。

                试试吧,

                heroku config
                

                还有另一种方法,转到 Heroku Web 中的设置。然后配置变量。

                【讨论】:

                  猜你喜欢
                  • 2017-06-22
                  • 2023-03-17
                  • 2017-01-09
                  • 1970-01-01
                  • 2017-03-02
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-11-21
                  • 2016-08-05
                  相关资源
                  最近更新 更多