[RUBY] Zugriff für user'root '@' localhost 'verweigert (mit Passwort: NO) Korrekturmaßnahme für Fehler

Details des Fehlers

Nach dem Ausführen von "Rails" trat beim Betrachten des Browsers der folgende Fehler auf: ↓

Mysql2::Error::ConnectionError Access denied for user 'root'@'localhost' (using password: NO)

Zusamenfassend, Ich kann nicht darauf zugreifen, weil ich kein Passwort habe! darüber.

So beheben Sie den Fehler

Es gibt zwei Möglichkeiten, um den Fehler zu beheben.

  1. Schreiben Sie das in MySQL festgelegte Passwort fest in database.yml.
  2. Leeren Sie das Passwort des Root-Benutzers.

Bei der individuellen Entwicklung ist 1 in Ordnung, aber bei der Entwicklung als Team muss das Team dasselbe Passwort verwenden, was ein wenig problematisch ist. Daher werden wir dieses Mal auf 2 eingehen. Ich werde auch kurz 1 beschreiben.

1. Schreiben Sie solide in database.yml.

database.yml


default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: #Schreiben Sie hier Ihr Passwort
  socket: /tmp/mysql.sock

Die einfachste Lösung besteht darin, das Passwort im obigen Abschnitt zu schreiben. Wenn Sie es jedoch auf ein Versionsverwaltungssystem wie GitHub übertragen, wird das Kennwort verfügbar gemacht. Sie müssen das Kennwort also in der ENV-Datei verwalten und in Gitignore schreiben.

2. Leeren Sie das Passwort des Root-Benutzers.

Starten Sie MySQL.

$ mysql.server start

Melden Sie sich bei MySQL an.

$ mysql -u root -p
Enter password: #Geben Sie die aktuelle PW ein

Wählen Sie die Datenbank aus, die Sie verwenden möchten.

mysql> use mysql;

Leeren Sie das Passwort. Beachten Sie, dass in MySQL 5.7.6 der Name der Kennwortspalte von Kennwort in Authentifizierungszeichenfolge geändert wurde.

mysql> update user set authentication_string='' where user='root';

Wenn der obige Code funktioniert, sehen Sie, dass Sie die Änderung vorgenommen haben.

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Schließen Sie MySQL, wenn die Änderungen erfolgreich sind.

mysql> exit

Stoppen Sie MySQL einmal, damit die Änderungen wirksam werden.

$ mysql.server stop

Starten Sie es erneut. Ich denke, es ist in Ordnung, neu zu starten, ohne anzuhalten.

$ mysql.server start

Und stellen Sie sicher, dass Sie sich ohne Passwort anmelden können.

$ mysql -u root

Schließen Sie nach dem Anmelden MySQL erneut und starten Sie den Server.

$ rails s

Und wenn ich den Browser öffne ... スクリーンショット 2020-11-05 17.05.11.png

Der Fehler wurde erfolgreich behoben. Danke für deine harte Arbeit!

Referenzseite

Tägliches Memorandum

Recommended Posts

Zugriff für user'root '@' localhost 'verweigert (mit Passwort: NO) Korrekturmaßnahme für Fehler
Mysql2 :: Error :: ConnectionError: Zugriff für user'root '@' localhost 'verweigert (mit Passwort: YES)
Zugriff für user'root '@' localhost 'verweigert (mit Passwort: YES) und aufgegeben