Mysql 拥有Heroku应用程序';s数据库\u URL指向媒体数据库

Mysql 拥有Heroku应用程序';s数据库\u URL指向媒体数据库,mysql,database,heroku,mediatemple,Mysql,Database,Heroku,Mediatemple,我不知道该把它贴在哪里,所以我想这可能是个好地方。我想知道是否有可能让Heroku应用程序的数据库URL指向Media Temple GS数据库?我已经尝试使用命令“heroku config:adddatabase_URL”建立到我的mt数据库外部域的连接(同时允许heroku的ip地址位于mt可接受的外部ip地址中)=mysql://username:password@主机/数据库名--app appname“并运行”heroku-rake-db:migrate--app appname“,

我不知道该把它贴在哪里,所以我想这可能是个好地方。我想知道是否有可能让Heroku应用程序的数据库URL指向Media Temple GS数据库?我已经尝试使用命令“heroku config:adddatabase_URL”建立到我的mt数据库外部域的连接(同时允许heroku的ip地址位于mt可接受的外部ip地址中)=mysql://username:password@主机/数据库名--app appname“并运行”heroku-rake-db:migrate--app appname“,但它似乎不起作用。有什么想法吗?下面是错误的样子:

雷克流产了

无法连接到'example.com'(111)上的MySQL服务器。

不支持从heroku以外的计算机连接到共享heroku数据库。但可以使用其pg:ingres功能连接到专用的heroku数据库

这本质上是heroku堆栈中的安全和资源配置功能。如果需要连接到外部数据层,则需要为其构建API并通过该API进行工作

编辑:
不支持从heroku之外的机器连接到共享heroku数据库,因为在

上正在制作一个外观漂亮的gem。但可以使用其pg:ingres功能连接到专用的heroku数据库


这本质上是heroku堆栈中的安全和资源配置功能。如果您需要连接到外部数据层,则需要为其构建一个API并通过该API进行工作。

问题不在于Heroku,我过去曾通过我的托管提供商成功连接到外部数据库。您需要使用以下符号:

    $pdoconn = new PDO('mysql:host=' . $host . ';dbname=' . $db, $user, $pwd, array( PDO::ATTR_PERSISTENT => false));
另一方面,Media temple有一个只允许特定IP地址从外部位置连接到网格服务器中运行的mysql实例的策略

您可以通过以下步骤更改该列表:

您的域>管理>管理数据库>用户和设置>外部数据库>添加IP

这里的问题主要取决于确定Heroku服务器暴露于MediaTemple的IP地址,因为地址会随时间而变化

要确定暴露的IP,您可以创建一个新文件
ipcheck.php
,其内容如下:

<?php
$homepage = file_get_contents('http://www.whatsmyip.org/');
echo $homepage;
?>

然后在部署到heroku实例后浏览此页面,您将看到您的IP对于每个请求都有很大的不同

解决此问题的唯一方法是通过或类似方式提供静态IP,然后配置MediaTemple以允许从该IP进行外部连接

为mysql数据库运行hostgator服务器可能更便宜(hostgator mysql数据库允许从任何地方进行外部连接)