[RUBY] Ich erhalte Mysql2 :: Error :: ConnectionError in der Produktionsumgebung

Ein Fehler tritt auf, wenn Sie in die Produktionsumgebung (Heroku) wechseln und zum neuen Registrierungsbildschirm oder Anmeldebildschirm wechseln

ruby '2.6.5' gem 'rails', '~> 6.0.0' gem 'mysql2', '0.5.3'

Dieses Mal habe ich eine Anwendung von Grund auf neu erstellt und da ich bis zu einem gewissen Grad ein Framework hatte, habe ich es auf Heroku verschoben. Der obere Bildschirm wurde sicher angezeigt, aber wenn ich zum neuen Registrierungsbildschirm oder Anmeldebildschirm gehe, tritt ein Fehler auf, sodass ich die Methode zum Lesen der Fehleranweisung und zum Beheben des Fehlers schreibe.

Das Ergebnis war zunächst, dass die Datenbank und die Anwendung nicht gut miteinander verbunden waren.

Erstellen Sie eine Produktionsdatenbank

   %Heroku erstellen Anwendungsnamen

Erstellen Sie nun eine Datenbank. Erstellen und bestätigen Sie mit dem folgenden Code.

   % git config --list | grep heroku

Wenn etwas anderes als fatal: Nicht in einem Git-Verzeichnis angezeigt wird, ist es OK.

Machen Sie die Datenbank MySQL mit Heroku

In Heroku wird standardmäßig PostgreSQL verwendet. Dieses Mal werden wir die Einstellungen so konfigurieren, dass sie dasselbe MySQL wie die Entwicklungsumgebung verwenden.

ClearDB-Add-On hinzugefügt

Ein Tool zur Verwendung von MySQL. Ein Add-On eines Datenbankdienstes namens ClearDB, mit dem Sie MySQL mit Heroku verwenden können.

   % heroku addons:add cleardb

Sie haben jetzt Ihre Datenbank auf MySQL eingestellt.

Als nächstes muss die Version von MySQL mit der Version des entsprechenden Gem übereinstimmen. Führen Sie daher den folgenden Befehl aus.

   % heroku config | grep CLEARDB_DATABASE_URL

CLEARDB_DATABASE_URL wird erstellt. In dieser Anwendung Da wir einen Edelstein namens mysql2 verwenden, müssen wir den Teil mysql: // in etwas wie mysql2: // ändern.

 heroku config:set DATABASE_URL='mysql2://000000000000:[email protected]/heroku_aaa00000000?reconnect=true'

、mysql://  → mysql2://

//000000000000:[email protected]/heroku_aaa00000000?

Der obige Teil ist für jede Anwendung unterschiedlich.

Ich konnte hier nicht mysql: // → mysql2: // ausführen. Es wurde also gesagt, dass die Datenbank nicht gut verbunden werden könne.

Muss ich die Datenbank löschen, um sie zurückzusetzen? Ich habe nach Dingen wie dem Löschen von CLEARDB_DATABASE_URL gesucht, aber das war es nicht.

CLEARDB_DATABASE_URL kann zurückgesetzt werden.

   % heroku config:set DATABASE_URL='mysql2://[Anwendung CLEARDB_DATABASE_URL]=true'

Ich habe es hier gelöst.

Und danach

   % git push heroku master

Push to Heroku,

   % heroku run rails db:migrate

halten. Es ist ein Muster, das Anfänger gerne vergessen. Vergessen Sie also nicht, zu migrieren.

Ich habe auf die Anwendung zugegriffen und den neuen Buchungsbildschirm überprüft, konnte aber sicher darauf zugreifen.

Recommended Posts

Ich erhalte Mysql2 :: Error :: ConnectionError in der Produktionsumgebung
(Capistrano) Nach der Bereitstellung wird ein Fehler in der Produktionsumgebung angezeigt.
[Fehler] Die App wird in der Produktionsumgebung nicht angezeigt
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
500 Interner Serverfehler tritt in der Rails-Produktionsumgebung auf
Ich möchte den Wert in Ruby erhalten
Beheben Sie Mysql2 :: Error :: ConnectionError
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
[Rails] So löschen Sie MySQL-Daten aus der Produktionsumgebung, nachdem Sie sie in die Entwicklungsumgebung gestellt haben
Erstellen Sie eine Datenbank in einer Produktionsumgebung
Ich sehe keinen Fehler bei der Installation des Rails-Bundles ... der Lösung
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Spring Boot + MyBatis Ich erhalte diesen Fehler, wenn ich die Datenbank nicht einstelle
[Aufbau der Rails & Docker & MySQL-Umgebung] Ich habe den Container gestartet, kann aber MySQL nicht finden ...?
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
Ich erhalte folgende Fehler: Der Benutzer muss im Unit-Model-Test vorhanden sein
Ich habe das neue Yuan-Problem in Java ausprobiert
Bearbeiten Sie MySQL mit Befehlen in der Docker-Umgebung
Erstellen eines Servlets in der Liberty-Umgebung
So erhalten Sie das Datum mit Java
Das Bild wird in der Produktionsumgebung nicht angezeigt
Ich habe die AutoValue-Bibliothek mit Intellij ausprobiert
Erhalten Sie eine Fehlermeldung mit einer beliebigen Methode
Eine Lösung für einen Fehler, der Sie verärgert, dass Sie in einer Produktionsumgebung nicht der MySQL-Standardeinstellung ONLY_FULL_GROUP_BY folgen und diese nicht eindeutig ist.
Nach dem Erneuern des Zertifikats mit CircleCI × fastlane erhalte ich den Fehler Exit status: 65.
Lösung für den Fehler Webpacker :: Manifest :: MissingEntryError in Devise :: Sessions # new
Unbekannter MYSQL Lock TimeOut-Fehler beim Ausführen von RSpec auf dem Container
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Ich habe versucht, die Sitzung in Rails zu organisieren
Rails-Tutorial Informationen zur Kontoaktivierung in der Produktionsumgebung
Wenn Sie sich im Klassennamen verlieren
Beim Hinzufügen einer Abhängigkeit wird eine Fehlermeldung angezeigt
Rails5.1 + Puma SSL-Verbindung in lokaler Produktionsumgebung
Holen Sie sich Ihre Versionsnummer in der Android-App
MySQL-Fehler in der Spalte Spring Unknown 'Value 1'in'field list'
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Ich bin gestolpert, als ich versucht habe, neo4j in der jenv-Umgebung zu verwenden. Machen Sie sich also eine Notiz
Für diejenigen, die MySQL für die Datenbank in der Umgebungskonstruktion von Rails6 ~ verwenden möchten.
[JavaScript] Axios (Ajax) kann den Antworttext zum Zeitpunkt eines Fehlers nicht abrufen
Einfache Überwachung der Innenumgebung - ⑨ Erfassen Sie die Bewegungserkennung (HC-SR501 / RCWL-0516) mit Java (GPIO / Pi4J) -
Ich habe eine Frage. Beim Abspielen eines Videos in Listview mit Android tritt ein Fehler auf.
# 1_JAVA Ich möchte die Indexnummer durch Angabe eines Zeichens in der Zeichenfolge erhalten