Ich wollte dem Linebot, an dem ich gerade arbeite, eine datenbankbasierte Funktion hinzufügen, also habe ich versucht, mit Heroku eine Verbindung zu MySQL herzustellen, aber es gab viele Stolpersteine. Infolgedessen habe ich aufgegeben, aber ich hoffe, dass es für Anfänger wie mich hilfreich sein wird, also werde ich es für alle Fälle zusammenfassen.
Installieren Sie MySQL selbst mit pip install mysql
.
Installieren Sie den Stecker.
Um ehrlich zu sein, verstehe ich die Rolle nicht wirklich, aber wie der Name schon sagt, scheint es notwendig, eine Verbindung zum MySQL-Server herzustellen.
Es gibt viele Arten von Konnektoren, abhängig vom Zweck und der verwendeten Sprache, aber ich verwende "mysqlclient".
Dies wird auch mit pip install mysqlclient
installiert.
In meinem Fall habe ich nach Abschluss aller später beschriebenen Vorbereitungen für MySQL den Code an Heroku gesendet, um den Vorgang zu überprüfen, aber ich habe einen MySQL-Importfehler erhalten. Es gab zwei Ursachen, aber die erste war die Beschreibung der "Anforderungen" in der Push-Datei. Ein Fehler ist aufgetreten, weil ich den MySQL-Connector hier nicht aufgelistet habe (Übrigens war ich mir zunächst nicht sicher und habe die Version von MySQL selbst aufgelistet, aber als ich sie gepusht habe, ist ein Fehler aufgetreten. Masu).
Zweitens scheint bei der Verwendung von MySQL mit Heroku ClearDB verwendet zu werden, und ein daraus erstelltes Konto ist erforderlich. Ich werde die detaillierte Registrierungsmethode weglassen, aber als Einschränkung sagen die meisten Artikel über ClearDB, dass Sie nach der Registrierung die Umgebungsvariable "CLEARDB_DATABASE_URL" kopieren, den Anfang in "mysql2" ändern und auf "DATABASE_URL" setzen müssen. Diese Operation scheint nur für Ruby notwendig zu sein.
Aus diesem Grund habe ich mich dieses Mal entschlossen, über das Konto "CLEARDB_DATABASE_URL" eine Verbindung zu MySQL herzustellen, als ClearDB mit "heroku addons: create cleardb: ignite" hinzugefügt wurde.
Da es in CLEARDB_DATABASE_URL
in Form von mysql: // [Benutzername]: [Passwort] @ [Hostname] / [Datenbankname]? Reconnect = true
beschrieben ist,mysql --host = [Hostname] auf dem Terminal. Sie können eine Verbindung herstellen, indem Sie --user = [Benutzername] --password = [Passwort] [Datenbankname]
eingeben.
Wenn ich MySQL sicher eingeben kann, erstelle ich die erforderlichen Tabellen usw., aber hier tritt ein Problem auf. Ich habe eine Abfrage auf dem Monitor eingegeben, um eine Tabelle normal zu erstellen, aber ich habe den Fehler "ERROR 2013" erhalten. Unmittelbar danach, als ich dieselbe Abfrage erneut eingab, wurde ein weiterer Fehler angezeigt, aber die Ausführung selbst wurde durchgeführt. Aus diesem Grund dachte ich, dass ich wahrscheinlich die Timeout-Systemeinstellungen ändern musste, akzeptierte aber den Befehl zum Ändern nicht. Nach vielen Recherchen kam ich zu dem Schluss, dass die Hauptursache darin bestand, dass ich migrieren musste, um die DB-Einstellungen zu ändern. Obwohl ich untersucht habe, wie Flask migriert werden kann, konnte ich es überhaupt nicht verstehen. Ursprünglich war ich nicht besonders über MySQL selbst informiert, also gab ich auf und entschied mich für postgresql, die Standard-DB von Heroku.
~~ Als ich es in der Fehlermeldung nachgeschlagen habe, schien es, dass es durch Erhöhen des Werts wie "connect_timeout" gelöst werden könnte, aber es ist keine grundlegende Lösung und es kann ohne Probleme verarbeitet werden, wenn der Root-Benutzer eingibt, also ClearDB Ich dachte, es könnte ein besonderes Problem geben. Wenn Sie sich also die ClearDB-Site genauer ansehen, ~~
~~ Es wird empfohlen, beim Bearbeiten der Datenbank MySQL Workbench, Sequel Pro für Mac OS X, Navicat usw. zu verwenden. ~~
Ich fand eine Beschreibung mit der Aufschrift ~~. Dies scheinen GUI-Tools zu sein, mit denen Sie MySQL ohne direkte Eingabe einer Abfrage betreiben können. In einem Artikel habe ich bereits jemanden gesehen, der MySQL Workbench verwendet. Deshalb habe ich mich entschlossen, dies zu versuchen. Ausführliche Informationen zu Betriebsmethoden usw. finden Sie in diesem Artikel. konnte ich die erforderliche Tabelle sicher erstellen. ~~
Als ich nach dem Üben von MySQL zum ersten Mal versuchte, MySQL als Root-Benutzer einzugeben, konnte ich das Passwort nicht finden, egal wie oft ich gesucht habe. Ich wusste, dass das ursprüngliche Kennwort in der angegebenen Datei aufgeführt war, als ich MySQL installiert habe, aber ich konnte diese Datei nicht finden, egal wie viele Schritte ich befolgt habe. Infolgedessen gelang es mir, unter Siehe diesen Artikel in MySQL einzusteigen.
Ich habe es lange geschrieben, aber zusammenfassend
Es wird sein.
Dieses Mal habe ich ein neues Feld namens Datenbank ausprobiert, und es war eine großartige Lernerfahrung, da ich eine andere Perspektive brauchte als das Schreiben des Codes, den ich bisher gemacht hatte. Die Beta-Basis scheint für fast alle Dienste unverzichtbar zu sein, daher möchte ich diese Gelegenheit nutzen, um solides Wissen zu erwerben und meine Fähigkeiten zu erweitern.
Recommended Posts