我不确定在哪里发帖,所以我认为这可能是一个好地方。我想知道是否可以将Heroku app的DATABASE_URL指向Media Temple GS数据库?我已经尝试使用以下命令建立到我的mt数据库的外部域的连接(同时允许在mt的可接受的外部IP地址中使用heroku的IP地址):" heroku config: add DATABASE_URL = mysql:// username:password @ host / databasename --app appname"并运行" heroku rake db:migrate --app appname",但它似乎不起作用。有任何想法吗?这是错误的样子:
耙子中止了!答案 0 :(得分:0)
不支持从Heroku外部的计算机连接到共享的heroku数据库。但是可以使用他们的pg:ingress功能连接到专用的heroku数据库。
这实际上是heroku堆栈中的安全和资源配置功能。如果您需要连接到外部数据层,则需要为其构建API并通过它进行工作。
处工作的是一个漂亮的宝石答案 1 :(得分:0)
不支持从Heroku外部的计算机连接到共享的heroku数据库。但是可以使用他们的pg:ingress功能连接到专用的heroku数据库。
这实际上是heroku堆栈中的安全和资源配置功能。如果您需要连接到外部数据层,则需要为其构建API并通过它进行工作。
答案 2 :(得分:0)
问题不在于Heroku,我以前能够与我的托管服务提供商成功连接到外部数据库。你需要使用这种表示法:
$pdoconn = new PDO('mysql:host=' . $host . ';dbname=' . $db, $user, $pwd, array( PDO::ATTR_PERSISTENT => false));
另一方面,Media temple的策略是只允许特定的IP地址从外部位置连接到Grid Server中的mysql实例runninng。
您可以按照以下步骤更改该列表:
您的域名>管理员>管理数据库>用户&设置>外部数据库>添加IP
此处的问题主要在于确定您的Heroku服务器的IP地址是否暴露给MediaTemple,因为地址会随着时间而改变。
要确定您的公开IP,您可以创建一个新文件ipcheck.php
,其内容如下:
<?php
$homepage = file_get_contents('http://www.whatsmyip.org/');
echo $homepage;
?>
然后在部署到您的heroku实例后浏览此页面,您将看到您的IP与每个请求的差异非常大。
解决此问题的唯一方法是通过Proximo addon或类似设置静态IP,然后配置MediaTemple以允许来自该IP的外部连接。
为你的mysql数据库运行hostgator服务器可能更便宜(hostgator mysql数据库允许从任何地方进行外部连接)。