远程连接到 clearDB Heroku 数据库

120

我该如何使用例如MySQL Query Browser远程连接到Heroku上的ClearDB MySQL数据库呢?从哪里获取URL、端口、登录名和密码?

13个回答

212
在Heroku网站上,转到“我的应用程序”,并选择您已安装ClearDB的应用程序。
在右上角点击插件,然后选择ClearDB MySQL Database
然后,单击您的数据库并选择“端点信息”选项卡。 在那里,您可以看到您的用户名/密码。 您可以通过在命令行中运行heroku config --app <YOUR-APP-NAME> 来获取连接到数据库的URL。
在我的情况下,它是这样的:mysql://user:pass@us-cdbr-east.cleardb.com/DATABASE?reconnect=true 您需要的是这部分:us-cdbr-east.cleardb.com

17
您可以直接在Heroku仪表板/网站上查看此内容,只需进入您的应用程序,单击“设置”和“显示配置变量”。 - Eirik H
1
至少在我的情况下,us-cdbr-east.cleardb.com 相当于主机名而不是数据库名称。但是,在 ClearDB 插件的仪表板上可以找到数据库名称。 - Roseaboveit
3
您需要将本地数据库文件导出到Heroku创建的数据库中。只需按照此视频操作即可 https://www.youtube.com/watch?v=mBCH9OTVaGw&t=6s - Kartik Chauhan

105

运行 heroku config 命令获取 CLEARDB_DATABASE_URL,它应该是以下格式之一:

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

所以基本上你只需要查看你自己的URL,并从那里获取你想要的所有内容。这就是我如何设置MySQL Workbench。


4
谢谢@Andrei,但数据库的端口怎么办? - BenKoshy
2
@BKSpurgeon。我已经成功使用phpMyAdmin和默认端口(请参见https://dev59.com/UGQn5IYBdhLWcg3we3EE#22092539)。 - Abhishek Divekar
非常感谢您,这帮助我成功地将我的MySQL文件部署到Heroku上。 - Travis Le
@AbhishekDivekar,你的评论帮了我很多。我只是在我的xamp中更改了config.inc.php文件中的用户名和一些内容,然后它就在PHPMyAdmin上运行了。 - Ahmed Adewale

35

将此命令粘贴到终端

  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

主机 = us-cdbr-hirone-west-06.cleardb.net

数据库名称 = heroku_4a1dc3673c4114d


21
如果你正在使用MySQL Workbench,请按照以下模式操作。前往Heroku > 你的应用设置 > Config Vars,并显示长URL。该URL包括您的用户名、密码、数据库的URL和默认模式。请将所有信息如下粘贴,您将能够成功连接到数据库。在这篇文章中没有真正解释如何使用MySQL Workbench连接到ClearDB,所以希望这对一些人有所帮助。

输入图像描述


我尝试了这个解决方案,但它并没有起作用。但是这个解决方案在Sequal Pro中运行良好。 - nitin.agam
你从哪里获取Schema字符串的? - Nathan B

13

我录制了一个视频,讲解如何在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);
});

干杯!

MAGIC: http://makegif.com/g9yv.gif

4
不知道为什么这个回复被踩得这么厉害...你的createConnection让我明白了事情。谢谢 :) - Nico
3
应该提供下投票降低的原因。这是帮助了我的答案。谢谢,兄弟! - Anoop Thiruonam
但是如何使用 ssl 选项使其工作呢? - user2402616

5

前往Heroku上的应用程序,点击“设置”选项卡。然后点击第二个选项中的按钮,该按钮为“显示配置变量”。

在CLEARDB_DATABASE_URL变量下列出了以下内容...

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

因此,[主机部分]是您的主机名。 [数据库名称]是您的数据库名称,当然。

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

这应该是您访问数据库所需的全部内容。我使用Sequel Pro。我只需将该信息(名称、主机)插入“标准”选项卡即可开始使用。


1
你对 ClearDB 数据库 URL 的某些部分的解释真的很有帮助。谢谢! - Jur P

3
您可以使用以下一行代码在终端中连接到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`)
请注意,此代码将从Heroku环境变量中获取CLEARDB_DATABASE_URL,并将其用作MySQL连接字符串的参数。

2

将以下内容粘贴到终端中:

heroku config | grep CLEARDB_DATABASE_URL

2

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

只需尝试使用以下命令:

heroku config

还有一种方法,可以在Heroku Web的设置中找到“config var”选项。


0

是的,您可以直接连接到ClearDB,实际上我使用Workbench进行连接。然后您可以在本地主机和Heroku上使用相同的数据库。


4
知道这点很好,但这怎么能帮助楼主找到他们的连接信息呢? - Brad Koch
1
你说得没错,但我只是补充了一些信息,因为Neil Middleton说“假设你可以直接连接到ClearDB”,然后我只是说他可以。对于回答没有帮助到主要问题的事情,我感到抱歉。 - Alisson Reinaldo Silva
没关系。这类东西非常适合作为评论,但看起来你还需要更多的声望才行。 - Brad Koch
我可以轻松地访问Heroku服务,但问题出现在服务与数据库之间。遇到了“dial tcp 127.0.0.1:3306: getsockopt: connection refused”错误。 - filthy_wizard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接