[RUBY] J'obtiens Mysql2 :: Error :: ConnectionError dans l'environnement de production

Une erreur se produit lors du transfert vers l'environnement de production (heroku) et du nouvel écran d'enregistrement ou de connexion

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

Cette fois, j'ai créé une application à partir de zéro, et comme j'avais un cadre dans une certaine mesure, je l'ai poussé vers heroku. L'écran supérieur a été affiché en toute sécurité, mais lorsque je vais au nouvel écran d'enregistrement ou à l'écran de connexion, une erreur se produit, donc j'écrirai la méthode pour lire la déclaration d'erreur et la résoudre.

Tout d'abord, d'après le résultat, c'était parce que la base de données et l'application n'étaient pas bien connectées.

Créer une base de données de production

   %heroku créer le nom de l'application

Créez maintenant une base de données. Créez et confirmez avec le code ci-dessous.

   % git config --list | grep heroku

Si quelque chose d'autre que fatal: not in a git directory est affiché, c'est OK.

Créer la base de données Mysql avec heroku

Dans Heroku, le paramètre de base de données utilisé est PostgreSQL par défaut. Cette fois, nous allons configurer les paramètres pour utiliser le même MySQL que l'environnement de développement.

Ajout du module complémentaire ClearDB

Un outil pour utiliser MySQL. Un add-on fourni par un service de base de données appelé ClearDB qui vous permet d'utiliser MySQL avec Heroku.

   % heroku addons:add cleardb

Vous avez maintenant défini votre base de données sur MySQL.

Ensuite, la version de MySQL doit correspondre à la version du Gem correspondant, alors exécutez la commande suivante.

   % heroku config | grep CLEARDB_DATABASE_URL

CLEARDB_DATABASE_URL est créé. Dans cette application Puisque nous utilisons un gem appelé mysql2, nous devons changer la partie mysql: // en quelque chose comme mysql2: //.

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

、mysql://  → mysql2://

//000000000000:[email protected]/heroku_aaa00000000?

La partie ci-dessus est différente pour chaque application.

Je n'ai pas pu faire mysql: // → mysql2: // ici. On a donc dit que la base de données ne pouvait pas être bien connectée.

Dois-je supprimer la base de données pour la réinitialiser? J'ai recherché des choses comme la suppression de CLEARDB_DATABASE_URL, mais ce n'était pas le cas.

CLEARDB_DATABASE_URL peut être réinitialisé.

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

Je l'ai résolu ici.

Et après ça

   % git push heroku master

Poussez vers heroku,

   % heroku run rails db:migrate

tenir. C'est un modèle que les débutants ont tendance à oublier, alors n'oubliez pas de migrer.

J'ai accédé à l'application et vérifié le nouvel écran de publication, mais j'ai pu y accéder en toute sécurité.

Recommended Posts

J'obtiens Mysql2 :: Error :: ConnectionError dans l'environnement de production
(Capistrano) Après le déploiement, j'obtiens une erreur Désolé ... dans l'environnement de production.
[Erreur] L'application ne s'affiche pas dans l'environnement de production
[Rails] Réinitialisez la base de données dans l'environnement de production
[Rails] À propos de l'erreur selon laquelle l'image n'est pas affichée dans l'environnement de production
Une erreur de serveur interne 500 se produit dans l'environnement de production Rails
Je veux obtenir la valeur en Ruby
Résoudre Mysql2 :: Error :: ConnectionError
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
[Rails] Comment supprimer les données MySQL de l'environnement de production après les avoir placées dans l'environnement de développement
Créer une base de données dans un environnement de production
Je ne vois pas d'erreur dans l'installation du bundle Rails ... la solution
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
Spring Boot + MyBatis J'obtiens cette erreur si je ne configure pas la base de données
[Construction de l'environnement Rails & Docker & MySQL] J'ai démarré le conteneur, mais je ne trouve pas MySQL ...?
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
J'obtiens des erreurs: l'utilisateur doit exister dans le test du modèle unitaire
J'ai essayé le nouveau yuan à Java
Modifier Mysql avec des commandes dans l'environnement Docker
Création d'un servlet dans l'environnement Liberty
Comment obtenir la date avec Java
L'image n'est pas affichée dans l'environnement de production
J'ai essayé la bibliothèque AutoValue avec Intellij
Obtenez un message d'erreur en utilisant n'importe quelle méthode?
Une solution à une erreur qui vous met en colère parce que vous ne suivez pas le paramètre par défaut de MySQL ONLY_FULL_GROUP_BY en production et qu'il n'est pas unique
Après avoir renouvelé le certificat avec CircleCI × fastlane, j'obtiens un état de sortie: erreur 65.
Solution pour l'erreur Webpacker :: Manifest :: MissingEntryError dans Devise :: Sessions # new
Erreur MYSQL Lock TimeOut inconnue lors de l'exécution de RSpec sur le conteneur
Exemple de code pour obtenir les valeurs de type SQL clés dans Java + MySQL 8.0
J'ai essayé d'organiser la session en Rails
tutoriel rails À propos de l'activation de compte dans l'environnement de production
Quand tu te perds dans le nom de la classe
J'obtiens une erreur lors de l'ajout d'une dépendance
Connexion SSL Rails5.1 + puma dans un environnement de production local
Obtenez votre numéro de version dans l'application Android
Erreur MySQL dans la colonne Spring Unknown "Valeur 1" dans la "liste des champs"
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
J'ai trébuché lorsque j'ai essayé d'utiliser neo4j dans l'environnement jenv, alors prenez note
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
[JavaScript] Axios (ajax) ne peut pas obtenir le corps de la réponse au moment d'une erreur
Surveillez facilement l'environnement intérieur ~ ⑨ Obtenez la détection de mouvement (HC-SR501 / RCWL-0516) avec Java (GPIO / Pi4J) ~
J'ai une question. Une erreur se produit lors de la lecture d'une vidéo dans Listview avec Android.
# 1_JAVA Je veux obtenir le numéro d'index en spécifiant un caractère dans la chaîne de caractères