2011-01-03 15 views
1

Ich war mir nicht sicher, wo ich das posten sollte, also dachte ich, das könnte ein guter Ort sein. Ich würde gerne wissen, ob es möglich ist, den DATABASE_URL-Punkt einer Heroku-App auf eine Media Temple GS-Datenbank zu setzen. Ich habe bereits versucht, eine Verbindung zur externen Domäne meiner mt-Datenbank aufzubauen (indem ich herokus IP-Adressen in akzeptablen externen IP-Adressen von mt erlaubte) mit dem Befehl: "heroku config: add DATABASE_URL = mysql: // Benutzername: Passwort @ Host/Datenbankname - -app appname "und running" heroku rake db: migrate --app appname ", aber es scheint nicht zu funktionieren. Irgendwelche Ideen? So sieht der Fehler aus:Lassen Sie den DATABASE_URL einer Heroku-App auf eine Media Temple-GS-Datenbank verweisen

Rake abgebrochen!
Keine Verbindung zum MySQL-Server auf 'example.com' (111)

Antwort

0

Verbindung zu einer freigegebenen Heroku-Datenbank von Computern außerhalb von Heroku wird nicht unterstützt. Es ist jedoch möglich, mit der pg: ingress-Funktion eine Verbindung zu einer dedizierten heroku-Datenbank herzustellen.

Dies ist im Wesentlichen eine Sicherheits- und Ressourcenfunktion im Heroku-Stack. Wenn Sie eine Verbindung zu externen Datenebenen herstellen müssen, müssen Sie eine API dafür erstellen und über diese arbeiten.

Edit: Theres ein geschicktes suchen Juwel in https://github.com/nbudin/heroku_external_db

0

von Maschinen zu einer gemeinsamen Heroku Datenbank verbindet gearbeitet wird außerhalb von Heroku wird nicht unterstützt. Es ist jedoch möglich, mit der pg: ingress-Funktion eine Verbindung zu einer dedizierten heroku-Datenbank herzustellen.

Dies ist im Wesentlichen eine Sicherheits- und Ressourcenfunktion im Heroku-Stack. Wenn Sie eine Verbindung zu externen Datenebenen herstellen müssen, müssen Sie eine API dafür erstellen und über diese arbeiten.

0

Das Problem liegt nicht bei Heroku, ich konnte in der Vergangenheit erfolgreich externe Datenbanken mit meinem Hosting-Provider verbinden. Sie müssen diese Notation verwenden:

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

Medien Tempel auf der anderen Seite eine Politik der nur erlaubt bestimmte IP-Adressen müssen die MySQL-Instanz zu verbinden in Ihrem Grid Server von einem externen Standort runninng.

können Sie diese Liste ändern, indem Sie die folgenden Schritte:

Ihre Domain> Admin> Verwalten von Datenbanken> Benutzer & Einstellungen> Externe Datenbanken> hinzufügen IP

Das Problem beruht in erster Linie auf der Bestimmung Ihrer Heroku Server-IP Adresse, die MediaTemple ausgesetzt ist, da sich die Adresse im Laufe der Zeit ändert.

Um die exponierten IP bestimmen Sie eine neue Datei ipcheck.php mit Inhalten erstellen können wie folgt:

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

Dann dieser Seite sehen, nachdem sie Ihre Heroku Instanz bereitstellen, werden Sie feststellen, dass Ihre IP ziemlich unterschiedlich sind mit jede Anfrage.

Die einzige Möglichkeit besteht darin, eine statische IP-Adresse über die Proximo addon o.ä. bereitzustellen und anschließend MediaTemple so zu konfigurieren, dass externe Verbindungen von dieser IP-Adresse zugelassen werden.

Es ist wahrscheinlich billiger, einen Hostgator-Server für Ihre MySQL-Datenbank (Hostgator MySQL-Datenbank ermöglicht externe Verbindungen von überall) zu betreiben.