Mysql 拥有Heroku应用程序';s数据库\u URL指向媒体数据库
我不知道该把它贴在哪里,所以我想这可能是个好地方。我想知道是否有可能让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“,但它似乎不起作用。有什么想法吗?下面是错误的样子: 雷克流产了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“,
无法连接到'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数据库允许从任何地方进行外部连接)