Пусть DATABASE_URL приложения Heroku указывает на базу данных Media Temple GS - PullRequest
1 голос
/ 03 января 2011

Я не был уверен, где опубликовать это, поэтому я подумал, что это может быть хорошим местом. Я хотел бы знать, возможно ли указание DATABASE_URL приложения Heroku на базе данных Media Temple GS? Я уже пытался установить соединение с внешним доменом моей базы данных mt (при этом разрешая ip-адреса heroku в допустимых внешних ip-адресах mt), используя команду: "heroku config: add DATABASE_URL = mysql: // username: password @ host / databasename - -app appname "и работает" heroku rake db: migrate --app appname ", но, похоже, это не работает. Есть идеи? Вот как выглядит ошибка:

грабли прерваны!
Не удается подключиться к серверу MySQL на «example.com» (111)

Ответы [ 3 ]

0 голосов
/ 07 августа 2013

Подключение к общей базе данных heroku с компьютеров за пределами Heroku не поддерживается. но можно подключиться к выделенной базе данных heroku, используя функцию pg: ingress.

По сути, это функция безопасности и ресурсов в стеке героку. Если вам нужно подключиться к внешним уровням данных, вам нужно создать для него API и работать через него.

0 голосов
/ 15 декабря 2014

Проблема не в Heroku, в прошлом я мог успешно подключаться к внешним базам данных у своего хостинг-провайдера.Вам необходимо использовать эту запись:

    $pdoconn = new PDO('mysql:host=' . $host . ';dbname=' . $db, $user, $pwd, array( PDO::ATTR_PERSISTENT => false));

С другой стороны, в Media Temple есть политика, позволяющая только определенным IP-адресам подключаться к экземпляру mysql, запущенному на вашем Grid-сервере, из внешнего местоположения.

Вы можете изменить этот список, выполнив следующие действия:

Ваш домен> Администратор> Управление базами данных> Пользователи и настройки> Внешние базы данных> Добавить IP

Проблема здесь заключается в основномпри определении IP-адреса вашего сервера Heroku, доступного для MediaTemple, так как адрес будет меняться со временем.

Чтобы определить ваш открытый IP-адрес, вы можете создать новый файл ipcheck.php со следующим содержанием:

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

Затем просмотрите эту страницу после развертывания на своем экземпляре heroku, и вы увидите, что ваш IP-адрес сильно отличается при каждом запросе.

Единственный способ обойти это - предоставить статический IP-адрес через Proximo.addon или аналогичный, затем настройка MediaTemple для разрешения внешних подключений с этого IP.

Вероятно, дешевле запустить сервер hostgator для вашей базы данных mysql (база данных hostgator mysql допускает внешние подключения из любого места).

0 голосов
/ 11 апреля 2011

Подключение к общей базе данных heroku с компьютеров за пределами Heroku не поддерживается. но можно подключиться к выделенной базе данных heroku, используя функцию pg: ingress.

По сути, это функция безопасности и ресурсов в стеке героку. Если вам нужно подключиться к внешним уровням данных, вам нужно создать для него API и работать через него.

Edit: Theres изящно выглядящий драгоценный камень, над которым работают https://github.com/nbudin/heroku_external_db

...