Wo werden MySQL-Grant-Tabellen gespeichert?

338
fractalic

Diese Frage entstand, als ich versuchte, das root-Passwort bei einer Neuinstallation von mysql-server 5.7 auf Ubuntu 16.04 festzulegen. Wenn Sie ein Ritter der MySQL-Tabellen sind, können Sie wahrscheinlich zum Ende springen, um zu meinen Fragen zu gelangen. Ansonsten lesen Sie bitte den Kontext.

Dies ist eine Fortsetzung der akzeptierten Antwort auf diese Frage: ( https://askubuntu.com/questions/766900/mysql-doesnt-ask-for-root-password-when-installing/766908#766908?newreg=62a1dbc4e7764281ab0b35cfd0935894 ) und ich denke, ich bin vom gleichen Problem betroffen wie der ursprüngliche Fragesteller, aber ich möchte verstehen, warum die Antwort funktioniert.

Folgendes ist zu der Frage gekommen:

  1. Installieren Sie den mysql-server auf einem unberührten Server. Dpkg erschien und bat mich, das root-Passwort festzulegen. Nehmen wir an, ich setze es auf "Passwort".

  2. sudo apt-get purge '*mysql*' um alles entfernt zu entfernen, was mit mysql zusammenhängt.

    1. Verfolgen Sie dies mit ... autoremoveund ...autocleanfür ein gutes Maß.
  3. sudo apt-get install mysql-server. Es wird gut installiert, aber ich werde nicht aufgefordert, ein Root-Passwort anzugeben. (Ab mysql-server-5.7 können Sie dpkg-reconfiguredas root-Passwort nicht mehr zurücksetzen. Ich habe es trotzdem versucht, aber es gibt nichts aus und tut nichts).

  4. Ich versuche sudo mysql, mich beim mysql-Server anzumeldenERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO).

  5. Stellt sich heraus, ich kann auf dem Server anmelden, wenn ich das Passwort angeben, die ich während der ersten Installation festgelegt.

  6. Wenn ich das Passwort zurücksetzen möchte, kann ich mich mysqld_safe --skip-grant-tablesohne Passwort einloggen.

Cool; was ist das Problem?

Ich habe mysql erneut installiert und kein Kennwort angegeben. In den Grant-Tabellen wurde jedoch ein Kennwort aus einer früheren Installation abgerufen.

Die Antwort auf diese Frage ( https://stackoverflow.com/questions/22355534/where-login-users-are-stored-in-mysql ) bestätigt die Existenz der Grant-Tabellen ... aber was ist deren Essenz?

Also endlich die zwei Fragen, die im Zentrum meiner Verwirrung stehen:

  1. Wo werden die Grant-Tabellen gespeichert?
  2. Warum werden die Grant-Tabellen nicht während der Deinstallation oder sogar der Deinstallation mit Konfigurationslöschung zerstört?
0

0 Antworten auf die Frage