Après avoir fait rails s
, quand j'ai regardé le navigateur, l'erreur suivante s'est produite ↓
Mysql2::Error::ConnectionError Access denied for user 'root'@'localhost' (using password: NO)
en bref, Je ne peux pas y accéder car je n'ai pas de mot de passe! à propos de ça.
Il existe deux façons de résoudre l'erreur.
Lors du développement individuel, 1 c'est bien, mais lors du développement en équipe, il est nécessaire que l'équipe partage le même mot de passe, ce qui est un peu gênant, donc cette fois nous entrerons dans les détails sur 2. Je décrirai également brièvement 1.
database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: #Écrivez votre mot de passe ici
socket: /tmp/mysql.sock
La solution la plus simple consiste à écrire le mot de passe dans la section ci-dessus. Cependant, si vous le poussez vers un système de gestion de version tel que GitHub, le mot de passe sera exposé, vous devez donc gérer le mot de passe dans le fichier .env et l'écrire dans .gitignore.
Démarrez MySQL.
$ mysql.server start
Connectez-vous à MySQL.
$ mysql -u root -p
Enter password: #Entrez le PW actuel
Sélectionnez la base de données que vous souhaitez utiliser.
mysql> use mysql;
Videz le mot de passe. Notez que dans MySQL 5.7.6, le nom de la colonne de mot de passe est passé de password à authentication_string.
mysql> update user set authentication_string='' where user='root';
Si le code ci-dessus fonctionne, vous verrez que vous avez effectué la modification.
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Fermez MySQL si les modifications sont réussies.
mysql> exit
Arrêtez MySQL une fois pour que les modifications prennent effet.
$ mysql.server stop
Recommencez. Je pense qu'il est normal de redémarrer sans s'arrêter.
$ mysql.server start
Et assurez-vous que vous pouvez vous connecter sans mot de passe.
$ mysql -u root
Une fois connecté, fermez à nouveau MySQL et démarrez le serveur.
$ rails s
Et quand j'ouvre le navigateur ...
L'erreur a été résolue avec succès. Je vous remercie pour votre travail acharné!
Recommended Posts