Remote-Verbindung zur ClearDB-Heroku-Datenbank


103

Wie kann ich eine Remoteverbindung zur ClearDB MySQL-Datenbank auf Heroku herstellen, indem ich beispielsweise den MySQL Query Browser verwende? Woher bekomme ich URL, Port, Login und Passwort?

Antworten:


184

Gehen Sie auf der Heroku-Website zu Meine Apps und wählen Sie die App aus, auf der Sie ClearDB installiert haben.

Klicken Sie in der oberen Ecke auf Addons und wählen Sie dann ClearDB MySQL Database aus . Klicken Sie dort auf Ihre Datenbank und wählen Sie die Registerkarte " Endpunktinformationen ". Dort sehen Sie Ihren Benutzernamen / Passwort. Die URL zur Datenbank kann durch Ausführen abgerufen werden heroku config --app <YOUR-APP-NAME> in der Befehlszeile abgerufen werden.

In meinem Fall war es ungefähr so: mysql: // user: pass @ us-cdbr-east.cleardb.com / DATABASE? Reconnect = true Was Sie brauchen, ist dieser Teil: us-cdbr-east.cleardb.com


16
Sie können dies auch direkt auf dem Heroku-Dashboard / der Heroku-Website sehen. Gehen Sie einfach zu Ihrer App, klicken Sie auf "Einstellungen" und "Konfigurationsvariablen anzeigen".
Eirik H

1
Zumindest in meinem Fall war der äquivalente Teil us-cdbr-east.cleardb.com nicht der Name der Datenbank, sondern der Name des Hosts. Der Datenbankname wurde jedoch im Dashboard für das ClearDB-Addon gefunden.
Roseaboveit

3
Sie müssen Ihre lokale Datenbankdatei in die von Heroku erstellte Datenbank exportieren. Folgen Sie einfach diesem Video und Sie können loslegen zu youtube.com/watch?v=mBCH9OTVaGw&t=6s
Kartik Chauhan

85

Sie führen heroku config aus, um das zu erhalten, CLEARDB_DATABASE_URLund es sollte etwas von diesem Format sein:

CLEARDB_DATABASE_URL => mysql://[username]:[password]@[host]/[database name]?reconnect=true

Im Grunde schauen Sie sich einfach Ihre eigene URL an und erhalten von dort alles, was Sie wollen. So habe ich die MySQL-Workbench eingerichtet.


3
Danke @Andrei, aber was ist mit dem Port für die Datenbank?
BKSpurgeon

2
@ BKSpurgeon. Ich habe es mit phpMyAdmin mit dem Standardport arbeiten lassen (siehe stackoverflow.com/a/22092539/4900327 )
Abhishek Divekar

Vielen Dank Herr Es hilft mir, meine MySQL-Datei erfolgreich auf Heroku bereitzustellen
Travis Le

@AbhishekDivekar Ihr Kommentar hat mir sehr geholfen. Ich habe gerade den Benutzernamen und einige Dinge in einer Datei congig.inc.php in meinem xamp geändert und es hat auf PHPMyAdmin funktioniert.
Ahmed Adewale

23

Fügen Sie diesen Befehl in das Terminal ein

  heroku config | grep CLEARDB_DATABASE_URL

Danach erhalten Sie die Datenbank-URL. Dies ist beispielsweise Ihre Cleardb-Datenbank-URL.

'mysql://b0600ea495asds:9cd2b111@us-cdbr-hirone-west-
 06.cleardb.net/heroku_4a1dc3673c4114d?reconnect=true'

Dann sind dies Ihre Datenbankanmeldeinformationen. (Aus der obigen URL extrahiert)

USER NAME = b0600ea495asds

PASSWORT = 9cd2b111

HOST = us-cdbr-hirone-west- 06.cleardb.net

DATENBANKNAME = heroku_4a1dc3673c4114d


13

Ich habe ein Video gemacht, in dem erklärt wird, wie man mit NodeJS auf einem Heroku-Server eine Verbindung zu MySql herstellt.

http://www.youtube.com/watch?v=2OGHdii_42s

Dies ist der Code, falls Sie Folgendes sehen möchten:

https://github.com/mescalito/MySql-NodeJS-Heroku

Hier ist ein Teil des Codes:

var express = require("express");
var mysql      = require('mysql');
var app = express();
app.use(express.logger());

var connection = mysql.createConnection({
  host     : 'us-cdbr-east-04.cleardb.com',
  user     : 'b6d6c6e874',
  password : 'b3f7###',
  database : 'heroku_1daa39da0'
});

connection.connect();

app.get('/', function(request, response) {
  connection.query('SELECT * from t_users', function(err, rows, fields) {
      if (err) {
        console.log('error: ', err);
        throw err;
      }
      response.send(['Hello World!!!! HOLA MUNDO!!!!', rows]);
    });
});

var port = process.env.PORT || 5000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

Prost! MAGIE: http://makegif.com/g9yv.gif


4
Ich weiß nicht, warum dies so stark abgelehnt wird. Ihre createConnection hat die Dinge für mich geklärt. Danke :)
Nico

3
Es sollte auch ein Grund für die Ablehnung angegeben werden. Dies ist die Antwort, die mir geholfen hat. Dank bro!
Anoop.PA

8

Wenn Sie die mySQL-Workbench verwenden, folgen Sie diesem Schema. Gehen Sie zu Heroku> Ihre Anwendungseinstellungen> Config Vars und zeigen Sie die lange URL an. Diese URL enthält Ihren Benutzernamen, Ihr Kennwort, die URL der Datenbank und das Standardschema. Fügen Sie alle Informationen wie folgt ein, und Sie können erfolgreich eine Verbindung zur Datenbank herstellen. Es gab keine wirkliche Erklärung, wie man mit mySQL Workbench in diesem Thread eine Verbindung zu ClearDB herstellt. Hoffentlich hilft dies jemandem, der Probleme hatte.

Geben Sie hier die Bildbeschreibung ein


Ich habe diese Lösung ausprobiert, aber das funktioniert nicht. Aber diese Lösung funktioniert gut in Sequal Pro.
nitin.agam

2

Fügen Sie dies in das Terminal ein:

heroku config | grep CLEARDB_DATABASE_URL

1

Mit diesem Einzeiler können Sie eine Verbindung zu Ihrer MySQL-Datenbank in Ihrem Terminal herstellen.

$ (ruby -e 'erfordert "uri"; uri = URI.parse (ARGV [0]); setzt "mysql -u # {uri.user} -p # {uri.password} -h # {uri.host} -D # {uri.path.gsub ("/", "")} "'` heroku config: get CLEARDB_DATABASE_URL`)

1

Gehen Sie zu Ihrer App auf Heroku und klicken Sie auf die Registerkarte "Einstellungen". Klicken Sie dann auf die Schaltfläche der zweiten Option mit der Aufschrift "Konfigurationsvariablen anzeigen".

Sie sollten unter der Variablen CLEARDB_DATABASE_URL etwas Ähnliches finden ...

mysql: // [Benutzername]: [Passwort] @ [Host] / [Datenbankname]? reconnect = true

Der [Host-Teil] ist also Ihr Host. Der Teil [Datenbankname] ist natürlich Ihr Datenbankname.

Sie benötigen weiterhin Ihren Benutzernamen und Ihr Passwort. Gehen Sie zurück zur Registerkarte "Übersicht" in Heroku. Wechseln Sie zum Abschnitt ClearDB-Add-On in Ihrem Abschnitt zu installierten Add-Ons. Klicken Sie auf die Datenbank, auf die Sie zugreifen möchten (wahrscheinlich nur 1 Option dort). Klicken Sie auf die Registerkarte "Systeminformationen". Sie sollten Ihren Benutzernamen und Ihr Passwort sehen.

Das sollte alles sein, was Sie brauchen, um auf Ihre Datenbank zuzugreifen. Ich benutze Fortsetzung Pro. Ich habe diese Informationen (Name, Host) einfach in die Registerkarte "Standard" eingefügt und konnte loslegen.


0

Alle Details finden Sie in der Datenbank-URL, die Sie unter finden heroku config. Angenommen, Sie können eine direkte Verbindung zu ClearDB herstellen (ich habe es noch nie versucht), sollten dies alles sein, was Sie brauchen ...


0

All dies hat perfekt für mich funktioniert. Heroku config | verwenden grep, wie oben beschrieben, und füge dann einfach einen weiteren Eintrag in meine config.inc.php ein, der von phpMyAdmin verwendet wird, und ich kann remote auf meine cleardb-Datenbank zugreifen. Es erspart mir, SQL lokal zu haben und Postgres mit Heroku zu verwenden.


0

sollten in Betracht ziehen, die Anmeldeinformationen von vars in Heroku-Konfigurationen (Config Vars) abzurufen:

CLEARDB_DATABASE_URL


-1

Ja, Sie können eine direkte Verbindung zu ClearDB herstellen. Tatsächlich verwende ich Workbench, um eine Verbindung herzustellen. Dann können Sie dieselbe Datenbank für Ihren lokalen Host und für Heroku verwenden.


4
Das ist gut zu wissen, aber wie hilft das dem OP, seine Verbindungsinformationen zu finden?
Brad Koch

1
Sie haben Recht, aber ich habe gerade eine Information hinzugefügt, weil Neil Middleton sagte "Angenommen, Sie können sich direkt mit ClearDB verbinden", dann sagte ich nur Ja, er kann. Ich entschuldige mich für die Beantwortung von Fragen, die der Hauptfrage nicht geholfen haben.
Alisson Reinaldo Silva

Keine Sorge. Solche Dinge sind wirklich gutes Kommentarmaterial, aber es sieht so aus, als ob Sie dafür noch ein paar Wiederholungen benötigen.
Brad Koch

Ich habe 0 Probleme beim Heroku-Service. Aber vom Service bis zur Datenbank liegt das Problem. boooo. gettig "Wählen Sie TCP 127.0.0.1:3306: Getsockopt: Verbindung abgelehnt"
filthy_wizard
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.