【发布时间】:2012-04-07 00:23:24
【问题描述】:
如何使用 MySQL 查询浏览器在 heroku 上执行远程连接到 ClearDB MySQL 数据库。从哪里获取 url、端口、登录名和密码?
【问题讨论】:
标签: mysql database heroku database-connection
如何使用 MySQL 查询浏览器在 heroku 上执行远程连接到 ClearDB MySQL 数据库。从哪里获取 url、端口、登录名和密码?
【问题讨论】:
标签: mysql database heroku database-connection
所有详细信息都将在数据库 URL 中,可以在 heroku config 中找到。假设您可以直接连接到 ClearDB(我从未尝试过),这些应该就是您所需要的......
【讨论】:
在 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 config 来获取CLEARDB_DATABASE_URL,它应该是这种格式:
CLEARDB_DATABASE_URL => mysql://[username]:[password]@[host]/[database name]?reconnect=true
所以基本上你只需查看你自己的 url 并从那里得到你想要的一切。这就是我设置mysql工作台的方式。
【讨论】:
是的,你可以直接连接到 ClearDB,实际上我使用 Workbench 连接。然后你可以为你的 localhost 和 heroku 使用相同的数据库。
【讨论】:
我做了一个视频,解释如何在 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
【讨论】:
ssl选项一起工作?
将其粘贴到终端中:
heroku config | grep CLEARDB_DATABASE_URL
【讨论】:
您可以使用此单线连接到终端中的 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 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
【讨论】:
在 heroku 上转到您的应用,然后点击“设置”标签。然后单击第二个选项上的按钮“显示配置变量”。
您应该会在 CLEARDB_DATABASE_URL 变量下找到类似这样的内容...
mysql://[用户名]:[密码]@[主机]/[数据库名]?reconnect=true
所以 [主机部分] 是您的主机。 [数据库名称] 部分当然是您的数据库名称。
您仍然需要您的用户名和密码。返回 heroku 中的“概述”选项卡。转到已安装的附加组件部分中的 ClearDB 附加组件。单击您要访问的数据库(那里可能只有 1 个选项)。单击“系统信息”选项卡。您应该会看到您的用户名和密码。
这应该是您访问数据库所需的全部内容。我用的是sequel pro。我刚刚将该信息(名称、主机、“标准”选项卡插入,我就可以开始了。
【讨论】:
所有这些对我来说都很完美。使用 heroku 配置 | grep,如上所述,然后只需将另一个条目添加到我的 config.inc.php 供 phpMyAdmin 使用,我就可以远程访问我的 cleardb 数据库。它让我不必在本地拥有 SQL 并在 Heroku 中使用 postgres。
【讨论】:
应该考虑在heroku配置中获取vars的凭证(Config Vars):
CLEARDB_DATABASE_URL
【讨论】:
对于 Windows 用户,没有 grep 命令。
试试吧,
heroku config
还有另一种方法,转到 Heroku Web 中的设置。然后配置变量。
【讨论】: