ODER

ODER

Ich habe apt install mysql-serverMySQL auf Ubuntu 16.04 installiert, aber während der Installation wurde ich nicht nach dem Root-Passwort gefragt.

Nach der Installation trat ERROR 1045beim Versuch, mich anzumelden, rootder mysql_secure_installationgleiche Fehler auf. Ich purgehabe es wiederholt und autoremovedann neu installiert, aber es funktioniert nicht.

Wie kann ich das beheben? Kann ich das Root-Passwort festlegen, wenn ich es während der Installation nicht festgelegt habe?

Dies ist mein Installationsprotokoll:

Die folgenden zusätzlichen Pakete werden installiert:
  libaio1 MySQL-Client 5.7 MySQL-Client-Core 5.7 MySQL-Server 5.7
  mysql-server-core-5.7
Empfohlene Pakete:
  mailx tinyca
Die folgenden NEUEN Pakete werden installiert:
  libaio1 MySQL-Client 5.7 MySQL-Client-Core 5.7 MySQL-Server MySQL-Server 5.7
  mysql-server-core-5.7
0 aktualisiert, 6 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 0 B/17,9 MB an Archiven abgerufen werden.
Nach diesem Vorgang werden 160 MB zusätzlicher Speicherplatz verwendet.
Möchten Sie fortfahren? [J/n] j
Pakete vorkonfigurieren ...
Auswahl des zuvor nicht ausgewählten Pakets libaio1:amd64.
(Datenbank wird gelesen … 227144 Dateien und Verzeichnisse sind derzeit installiert.)
Das Entpacken von .../libaio1_0.3.110-2_amd64.deb wird vorbereitet ...
Auspacken von libaio1:amd64 (0.3.110-2) ...
Auswahl des zuvor nicht ausgewählten Pakets mysql-client-core-5.7.
Vorbereitung zum Entpacken von .../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-client-core-5.7 (5.7.12-0ubuntu1) wird ausgepackt ...
Auswahl des zuvor nicht ausgewählten Pakets mysql-client-5.7.
Vorbereitung zum Entpacken von .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-client-5.7 (5.7.12-0ubuntu1) wird entpackt ...
Auswahl des zuvor nicht ausgewählten Pakets mysql-server-core-5.7.
Vorbereitung zum Entpacken von .../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-server-core-5.7 (5.7.12-0ubuntu1) wird entpackt ...
Auswahl des zuvor nicht ausgewählten Pakets mysql-server-5.7.
Vorbereitung zum Entpacken von .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-server-5.7 (5.7.12-0ubuntu1) wird ausgepackt ...
Auswahl des zuvor nicht ausgewählten Pakets „MySQL-Server“.
Vorbereitung zum Entpacken von .../mysql-server_5.7.12-0ubuntu1_all.deb ...
MySQL-Server (5.7.12-0ubuntu1) wird entpackt ...
Trigger für libc-bin (2.23-0ubuntu3) werden verarbeitet …
Trigger für man-db (2.7.5-1) werden verarbeitet …
Trigger für systemd (229-4ubuntu4) werden verarbeitet …
Trigger für ureadahead (0.100.0-19) werden verarbeitet …
Einrichten von libaio1:amd64 (0.3.110-2) ...
Einrichten von mysql-client-core-5.7 (5.7.12-0ubuntu1) ...
Einrichten von mysql-client-5.7 (5.7.12-0ubuntu1) ...
Einrichten von mysql-server-core-5.7 (5.7.12-0ubuntu1) ...
Einrichten von mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: Verwenden von /etc/mysql/mysql.cnf, um /etc/mysql/my.cnf (my.cnf) im Automatikmodus bereitzustellen
Überprüfen, ob ein Update erforderlich ist.
Diese MySQL-Installation ist bereits auf 5.7.12 aktualisiert. Verwenden Sie --force, wenn Sie mysql_upgrade noch ausführen müssen.
Einrichten des MySQL-Servers (5.7.12-0ubuntu1) ...
Trigger für libc-bin (2.23-0ubuntu3) werden verarbeitet …

Antwort1

Sie können das Root-Passwort wiederherstellen oder festlegen, ohne das aktuelle zu kennen, indem Sie MySQL starten, ohne die Berechtigungstabellen zu laden.

Bitte beachten Sie die$in den Befehlen. Dies gibt die Terminal-Eingabeaufforderung an, die Sie sehen, wenn Sie den Befehl eingeben. Es zeigt an, dass es sich nicht um eine Textzeile handelt, sondern um einen tatsächlich eingegebenen Terminalbefehl. Das "mysql>" ist auch eine Eingabeaufforderung. Das ist die Eingabeaufforderung, die Sie erhalten, wenn SieMySQLinteraktiv.

Dies ist dascli(Befehlszeile), um dies zu tun:
(Sicher sein zuStoppen Sie den aktuellen Serverbevor Sie die Schritte ausführen. Es kann immer nur ein Server ausgeführt werden.)

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

Jetzt können Sie sich als Root ohne Passwort anmelden und alle Befehle ausführen, in diesem Fall legen Sie das Root-Passwort als Root fest.

$ sudo mysql --user=root mysql

Dies ist das festgelegte Root-Passwort, das Sie in MySQL eingeben, wenn Sie MySQL 5.6 oder niedriger haben:

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

In MySQL 5.7 oder höher

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

Beenden Sie von dort aus MySQL (beenden Sie das laufende msqld) und starten Sie es wie gewohnt.

Hinweise zum Starten und Stoppen des MySQL-Dienstes:

Stoppen Sie MySQL:

$ sudo service mysql stop

Starten Sie MySQL (normal):

$ sudo service mysql start

Beenden Sie die temporäre MySQL-Sitzung im abgesicherten Modus:

$ sudo mysqladmin shutdown

Antwort2

Während der Installation in Ubuntu 16.04 wird das Passwort nicht abgefragt, mysqlSie können es aber nach der erfolgreichen Installation folgendermaßen festlegen:

Führen Sie nach Abschluss der MySQL-Installation den folgenden Befehl aus:

sudo mysql_secure_installation

Wird sich zeigen:

HINWEIS: FÜR ALLE MariaDB-SERVER IM PRODUKTIONSEINSATZ WIRD EMPFOHLEN, ALLE TEILE DIESES SKRIPTS AUSZUFÜHREN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH!

Um uns bei MariaDB anzumelden und es zu sichern, benötigen wir das aktuelle Passwort für den Root-Benutzer. Wenn Sie MariaDB gerade installiert haben und das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer. Drücken Sie hier einfach die Eingabetaste.

Enter current password for root (enter for none): (hier Enter drücken)

OK, Passwort erfolgreich verwendet, weiter geht‘s …

Durch das Festlegen des Root-Passworts wird sichergestellt, dass sich niemand ohne entsprechende Berechtigung beim MariaDB-Root-Benutzer anmelden kann.

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

Passwort erfolgreich aktualisiert! Berechtigungstabellen werden neu geladen.. ... Erfolg!


Für Ubuntu 18.04 oder mysql-serverVersion 5.7.22 funktioniert diese Methode nicht

Um das Root-Passwort in Ubuntu 18.04 festzulegen, folgen Sie zunächst den ersten drei Befehlen oder den ersten beiden Schritten vonAntwort von LD Jamesdann renne,

mysql> alter user 'root'@'localhost' identified by '<password>';

Das Passwort für den Root-Benutzer ist festgelegt!

ODER

Befolgen Sie diese Schritte, um das Root-Passwort in 18.04 festzulegen:

Da für den Root-Benutzer kein Passwort festgelegt ist, melden Sie sich einfach mitleeres Passwort

sudo mysql -u root -p
Enter password: (press enter as no password is set)

danach kann die Abfrage problemlos ausgeführt werden

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

Antwort3

Nach der Installation einfach:

  1. sudo mysql (ja, kein Benutzer, kein Pass)

  2. Sie befinden sich nun in der MySQL-Konsole. Führen Sie Folgendes aus:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';

  3. FLUSH PRIVILEGES;

Das war’s. Du kannst die Konsole nun beim nächsten Mal wie gewohnt aufrufen:

mysql -u root -pmy_new_pass

Antwort4

  1. Es gibt ein Standardbenutzerkonto.

    $ vim /etc/mysql/debian.cnf 
    

    Sie erhalten diesen Account daraus wie folgt:

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. Sie melden sich mit diesem Konto an

    $ mysql -u debian-sys-maint -p
    
  3. Bearbeiten Sie Ihr Root-Passwort

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. MySQL neu starten

    $ /etc/init.d/mysql restart;
    

dann können Sie mysql -u root -pmit Ihren vorherigen Einstellungen fortfahren.

verwandte Informationen