Ich habe Ubuntu 16.04 Server installiert. Der MySQL-Server wurde standardmäßig darin installiert. Wenn ich versuche, mit mysql auf zuzugreifen mysql -u root -p
, kann ich mich nicht bei mysql anmelden, da ich kein Passwort habe. Gibt es ein Standardkennwort?
Ich habe es auch mit versucht --skip-grant-tables
, auch das funktioniert nicht. Selbst der Versuch, sich mit nur anzumelden, mysql -u root
ist ein Fehler.
mysql
ubuntu
passwords
ubuntu-16.04
ubuntu-server
Debashisenator
quelle
quelle
Antworten:
Dies ist, wonach Sie suchen:
sudo mysql --defaults-file=/etc/mysql/debian.cnf
MySql unter Debian-basiertem Linux verwendet normalerweise eine Konfigurationsdatei mit den Anmeldeinformationen.
quelle
Ich hatte eine Neuinstallation von
mysql-server
Ubuntu 18.10 und konnte mich nicht mit dem Standardkennwort anmelden. Dann habe nur ich erfahren, dass der Root-Benutzer standardmäßig mit authentifiziert istauth_socket
. Wie in der Antwort, als das Plugin geändert wurde,mysql_native_password
können wir das MySQL-Standardkennwort verwenden$ sudo apt install mysql-server $ sudo cat /etc/mysql/debian.cnf
Dort finden Sie die folgenden Zeilen
Dann:
Geben Sie das Passwort aus debian.cnf ein
mysql> USE mysql mysql> SELECT User, Host, plugin FROM mysql.user; +------------------+-----------+-----------------------+ | User | Host | plugin | +------------------+-----------+-----------------------+ | root | localhost | auth_socket | | mysql.session | localhost | mysql_native_password | | mysql.sys | localhost | mysql_native_password | | debian-sys-maint | localhost | mysql_native_password | +------------------+-----------+-----------------------+ 4 rows in set (0.00 sec) mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> COMMIT;
Entweder:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Oder:
// Für MySQL 5.7+
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
--Aktualisieren--
Manchmal müssen Sie Ihren MySQL-Server neu starten.
oder
quelle
sudo service mysql restart
Mysql verfügt standardmäßig über das Authentifizierungs-Plugin des Root-Benutzers als
auth_socket
, bei dem der Systembenutzername und der Datenbankbenutzername identisch sein müssen.Wenn Sie sich als root anmelden
sudo -i
und einfachmysql
eingebenroot
, werden Sie als MySQL angemeldet. Anschließend können Sie andere Benutzer erstellen.Wenn Sie keinen Root auf dem Host haben, sollten Sie sich wohl nicht als Root bei MySQL anmelden dürfen.
quelle
Sie können das Root-Passwort einfach zurücksetzen, indem Sie den Server mit --skip-grant-tables ausführen und sich ohne Passwort anmelden, indem Sie Folgendes als root oder mit sudo ausführen:
service mysql stop mysqld_safe --skip-grant-tables & mysql -u root mysql> use mysql; mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root'; mysql> flush privileges; mysql> quit # service mysql stop # service mysql start $ mysql -u root -p
quelle
update user set plugin="mysql_native_password";
nach derupdate user
Zeile hinzufügen ).Obwohl dies eine alte Frage ist, haben einige von uns immer noch Schwierigkeiten, eine Antwort zu finden. Zumindest habe ich das getan. Bitte befolgen Sie nicht alle langwierigen Lösungen . Sie können sich einfach als root bei mysql anmelden, ohne ein Kennwort anzugeben (vorausgesetzt, es handelt sich um eine Neuinstallation oder Sie haben das Kennwort seit Ihrer Installation nicht geändert), indem Sie sudo vor Ihrem Befehl mysql hinzufügen.
$sudo mysql -uroot -p mysql>
Dies liegt daran, dass MySQL das Sicherheitsmodell in einer der neuesten Versionen geändert hat.Hoffe das hilft
quelle
Wie @BeNiza sagte, haben sie das Sicherheitsmodell geändert. Ich habe die folgenden Schritte ausgeführt und es funktioniert für MySQL 5.7.27 unter Ubuntu 18.04
sudo apt install mysql-server
Die MySQL-Datenbanksoftware ist jetzt installiert, ihre Konfiguration ist jedoch noch nicht abgeschlossen.
Um die Installation zu sichern, wird MySQL mit einem Skript geliefert, das fragt, ob wir einige unsichere Standardeinstellungen ändern möchten. Starten Sie das Skript, indem Sie Folgendes eingeben:
sudo mysql_secure_installation
Sie sollten bei jeder Eingabeaufforderung Ydie ENTERTaste drücken und drücken.
Sie können sich einfach als root bei mysql anmelden, ohne ein Kennwort anzugeben, indem Sie sudo vor Ihrem mysql-Befehl hinzufügen.
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';
Wenn Sie ein schwaches Passwort festlegen, wird der folgende Fehler angezeigt:
mysql> FLUSH PRIVILEGES;
mysql> exit
Nachdem Sie das gerade festgelegte Passwort eingegeben haben, wird die MySQL-Eingabeaufforderung angezeigt.
quelle
In der neuesten Version verwendet mySQL. Um sich anzumelden
auth_socket
, müssen Sie die automatisch generierten Benutzeranmeldeinformationen kennen. Wenn Sie während des Installationsvorgangs eine Binärversion herunterladen, können Sie eine Auswahl treffenlagacy password
.So installieren Sie SQL in Linux-Debian-Versionen
sudo apt install mysql-server
über das Passwort wissen
Jetzt anmelden
Verwenden Sie das Passwort von
debian.cnf
So zeigen Sie verfügbare Benutzerdatensätze an:
USE mysql SELECT User, Host, plugin FROM mysql.user;
Jetzt können Sie einen neuen Benutzer erstellen. Verwenden Sie die folgenden Befehle:
use mysql; CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON *.* TO 'username'@'localhost'; flush privileges;
Auflisten der Zuschüsse für den jeweiligen MySQL-Benutzer
SHOW GRANTS FOR 'username'@'localhost';
So widerrufen Sie alle Berechtigungen für den jeweiligen MySQL-Benutzer
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';
Löschen / Entfernen eines bestimmten Benutzers aus der Benutzerkontoliste
DROP USER 'username'@'localhost';
Für weitere Befehle:
Bitte setzen Sie das Passwort für root nicht zurück, sondern erstellen Sie einen neuen Benutzer und gewähren Sie Rechte. Dies ist die beste Vorgehensweise.
quelle
Ab Ubuntu 20.04 waren unter Verwendung des Standardpakets MariaDB 10.3 die erforderlichen Schritte (Remix früherer Antworten aus diesem Thread):
sudo mysql -u root
USE mysql; UPDATE user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root'; UPDATE user set plugin="mysql_native_password" where User='root'; FLUSH privileges; QUIT
sudo service mysql restart
Danach können Sie mit Ihrem neuen Passwort eine Verbindung zu Ihrem lokalen MySQL herstellen:
mysql -u root -p
quelle
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
versuchen auf diese Weise, ich habe mein Problem mit dieser Methode gelöst.quelle
Ab Ubuntu 20.04 mit MySql 8.0 : Die Funktion
PASSWORD
existiert nicht mehr, daher ist der richtige Weg:Melden Sie sich bei MySQL mit an
sudo mysql -u root
Änder das Passwort:
Jetzt sollten Sie in der Lage sein, sich mit
mysql -u root -p
(oder mit dem Benutzernamen root bei phpMyAdmin) und Ihrem gewählten Passwort anzumelden.P, S:
Sie können sich auch mit dem Benutzer anmelden
debian-sys-maint
, das Passwort befindet sich in der Datei/etc/mysql/debian.cnf
quelle
Die einzige Option, die für mich funktioniert hat, ist die in diesem Link beschriebene .
Zusammenfassend (falls die Website ausfällt) heißt es:
sudo apt update sudo apt install mysql-server
sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;
Danach können Sie beenden:
Jetzt können Sie sich ganz einfach anmelden (Denken Sie daran, Ihr sehr starkes Passwort einzugeben ):
mysql -u root -p # type the password now.
Dies war die einzige Option, die für mich funktioniert hat, nachdem ich viele Stunden lang die oben genannten Optionen ausprobiert hatte.
quelle
Ich denke, ein anderer Ort zu suchen ist
/var/lib
. Wenn Sie dorthin gehen, sehen Sie drei MySQL-Ordner mit 'interessanten' Berechtigungen:Folgendes habe ich getan, um mein Problem mit dem Root-Passwort zu lösen:
nach dem Rennen
sudo apt-get purge mysql* sudo rm -rf /etc/mysql
Ich habe auch Folgendes ausgeführt (anstelle von my_username setzen Sie Ihren):
cd /var/lib sudo chown --from=mysql <my_username> mysql* -R sudo rm -rf mysql*
Und dann:
sudo apt-get install mysql-server
Das veranlasste mich, ein neues Root-Passwort auszuwählen. Ich hoffe, es hilft
quelle
Einfach laufen
sudo dpkg-reconfigure mysql-server-5.7
Sie können die installierte Version finden, indem Sie ausführen
dpkg --get-selections | grep mysql-server
quelle
In früheren Versionen konnte das Root-Passwort leer sein. In neueren Versionen ist das Root-Passwort das Anmeldekennwort des Administrators (Hauptbenutzers) während der Installation.
quelle
Wenn Sie Ihre MySQL mit installieren
apt install mysql
.Sie können sich einfach mit Ihrem MySQL anmelden
sudo mysql
.quelle