Ich bin ein Elektrotechniker, der hauptsächlich mit Stromversorgungssystemen herumspielt, anstatt zu programmieren. Vor kurzem habe ich ein Handbuch zur Installation einer Software-Suite unter Ubuntu befolgt. Ich habe mySQL
eigentlich überhaupt keine Kenntnis davon . Ich habe die folgenden Installationen auf meinem Ubuntu durchgeführt.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Dann mach ich
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
Am Ende habe ich die folgende Fehlermeldung erhalten.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Wie kann ich das Problem beheben und fortfahren?
Antworten:
Hinweis: Für MySQL 5.7+ lesen Sie bitte die Antwort von @Lahiru auf diese Frage. Das enthält aktuellere Informationen.
Für MySQL <5.7:
Das Standard-Root-Passwort ist leer (dh leere Zeichenfolge) nicht
root
. Sie können sich also einfach anmelden als:Sie sollten Ihr Root-Passwort natürlich nach der Installation ändern
In den meisten Fällen sollten Sie auch einzelne Benutzerkonten einrichten, bevor Sie ausgiebig mit der Datenbank arbeiten.
quelle
-p
Flag gibt das Passwort an. Nachdem Sie also Ihr Root-Passwort geändert haben, möchten Sie dies tunmysql -u root -p[newpassword]
. Der< [filename]
verwendet die std-Eingabe, um eine SQL-Datei unter dem Pfad auszuführen, der über die von Ihnen angegebenen Benutzeranmeldeinformationen angegeben wird.mysqladmin -u root password abc1234
, aber ich habe es bekommenmysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
. Ich danke dir sehr!Ich konnte dieses Problem lösen, indem ich diese Anweisung ausführte
Dadurch wird das Root-Passwort geändert.
quelle
dpkg --get-selections | grep sql
, um Ihre Version zu erhaltenyum list installed
add| grep sql
, um nur SQL-Pakete zu filtern.sudo: dpkg-reconfigure: command not found
. Irgendein Vorschlag?Sie müssen das Passwort zurücksetzen! Schritte für Mac OSX (getestet und funktioniert) und Ubuntu
Stoppen Sie die Verwendung von MySQL
oder
Starten Sie es im abgesicherten Modus:
(über der Zeile steht der gesamte Befehl)
Dies ist ein fortlaufender Befehl, bis der Vorgang abgeschlossen ist. Öffnen Sie daher ein anderes Shell- / Terminalfenster und melden Sie sich ohne Kennwort an:
Gemäß dem Kommentar von @ IberoMedia heißt das Feld für neuere Versionen von MySQL
authentication_string
:Starten Sie MySQL mit:
oder
Ihr neues Passwort ist 'Passwort'.
quelle
--skip-grant-tables
in Verbindung mit verwendet werden--skip-networking
, um zu verhindern, dass Remoteclients eine Verbindung herstellen. Oh, und auch, dieser hat bei mir nicht funktioniert. Deshalb bin ich hierher gekommen: p--
Ich würde vorschlagendpkg --get-selections | grep mysql-server-
, dass Sie Ihre genaue MySQL-Version abrufen und dann sudo dpkg-rekonfigurieren Sie mysql-server-5.x (ersetzen Sie 5) .x mit Ihrer Serverversion, übrigens). Ich habe die Antwort von @ Divz mit dieser Genauigkeit kommentiert, aber sie wird durch die verschiedenen "Danke" -Kommentare maskiert.Ich weiß, dass dies eine alte Frage ist, aber ich glaube, das könnte jemandem helfen. Ich war kürzlich mit dem gleichen Problem konfrontiert, aber in meinem Fall erinnere ich mich recht gut an mein Passwort, aber es gab mir immer wieder den gleichen Fehler. Ich habe so viele Lösungen ausprobiert, aber immer noch hat keine geholfen, dann habe ich es versucht
Danach werden Sie nach einem solchen Passwort gefragt
und dann habe ich das Passwort eingegeben, das ich verwendet habe. Das ist alles
quelle
Beim ersten Start des Servers geschieht Folgendes, vorausgesetzt, das Datenverzeichnis des Servers ist leer:
Verwenden Sie den folgenden Befehl, um es anzuzeigen:
Ändern Sie das Root-Passwort so schnell wie möglich, indem Sie sich mit dem generierten temporären Passwort anmelden und ein benutzerdefiniertes Passwort für das Superuser-Konto festlegen:
quelle
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysqld.log: No such file or directory
sudo grep 'temporary password' /var/log/mysql/error.log
. @ Lahiru Lösung hat bei mir funktioniert.shell> sudo grep 'password' /var/log/mysql/error.log
. Hat für mich funktioniert, aber ich bekomme: root @ localhost wird mit einem leeren Passwort erstellt! Bitte deaktivieren Sie die Option --initialize-unsicher. Meine MySQL-Wenn das Problem weiterhin besteht, versuchen Sie, das Ändern des Durchgangs zu erzwingen
Richten Sie ein neues MySQL-Root-Benutzerpasswort ein
Stoppen Sie MySQL Server:
Starten Sie den MySQL-Server und testen Sie ihn:
quelle
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
plagte auch meinen Server. 'mysqld_safe' schlug ebenfalls fehl, bis ich nach Schritt 1 einen 'killall mysqld' durchführte.--skip-grant-tables
in Verbindung mit verwendet werden--skip-networking
, um zu verhindern, dass Remoteclients eine Verbindung herstellen. Oh, und auch, dieser hat bei mir nicht funktioniert. Deshalb bin ich hierher gekommen: pEs passiert, wenn Ihr Passwort fehlt.
Schritte zum Ändern des Passworts, wenn Sie vergessen haben:
Stoppen Sie MySQL Server (unter Linux):
Starten Sie die Datenbank, ohne die Grant-Tabellen zu laden oder das Netzwerk zu aktivieren:
Das kaufmännische Und am Ende dieses Befehls führt dazu, dass dieser Prozess im
Hintergrund ausgeführt wird, sodass Sie Ihr Terminal weiterhin verwenden und #mysql -u root ausführen können. Es wird nicht nach dem Kennwort gefragt.
Wenn Sie Fehler wie folgt erhalten:
2018-02-12T08: 57: 39.826071Z mysqld_safe Verzeichnis '/ var / run / mysqld' für UNIX-
Socket-Datei existiert nicht. mysql -u root FEHLER 2002 (HY000): Es kann keine Verbindung zum lokalen MySQL-Server über den Socket
'/var/run/mysqld/mysqld.sock' (2) [1] + Exit 1 hergestellt werden
Erstellen Sie das MySQL-Dienstverzeichnis.
Geben Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.
Führen Sie den gleichen Befehl in Schritt 2 aus, um MySQL im Hintergrund auszuführen.
Führen Sie mysql -u root aus. Sie erhalten eine mysql-Konsole, ohne ein Kennwort einzugeben.
Führen Sie diese Befehle aus
Für MySQL 5.7.6 und neuer
Für MySQL 5.7.5 und älter
Wenn der Befehl ALTER USER nicht funktioniert, verwenden Sie:
Jetzt beenden
Zum Stoppen der Instanz manuell gestartet
Starten Sie MySQL neu
quelle
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
Ich bin auf dieses sehr nervige Problem gestoßen und habe viele Antworten gefunden, die nicht funktionierten. Die beste Lösung war, MySQL vollständig zu deinstallieren und neu zu installieren. Bei der Neuinstallation haben Sie ein Root-Passwort festgelegt, wodurch das Problem behoben wurde.
Ich habe diesen Code woanders gefunden, daher nehme ich keine Gutschrift dafür. Aber es funktioniert. Um MySQL nach der Deinstallation zu installieren, hat Digital Ocean meiner Meinung nach ein gutes Tutorial. Kasse mein Kern dafür.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
quelle
Ich benutze Ubuntu-16.04: MySQL installiert - 5.7. Ich hatte das gleiche Problem: Anmeldung für Root-Benutzer verweigert.
Versuchte die folgenden Schritte:
dpkg --get-selections | grep mysql
(um die Version von MySQL zu bekommen).dpkg-reconfigure mysql-server-5.7
mysql -u root -p
Ohne -p werden Sie nicht aufgefordert, nach dem Passwort zu fragen. Sobald Sie angemeldet sind, können Sie einen Benutzer mit einem Kennwort erstellen, indem Sie die folgenden Schritte ausführen:
Beenden Sie das Stammverzeichnis und melden Sie sich über das oben angegebene Verzeichnis an.
Aus irgendeinem Grund funktioniert es immer noch nicht, nur MySQL einzugeben. ÜBERHAUPT. Ich schlage vor, es zur Gewohnheit zu machen
mysql -u <name> -p
.quelle
Betreten Sie einfach das Terminal
mysql -u root -p. als es Sie nach dem Passwort fragen wird
quelle
Wenn keine der anderen Antworten für Sie funktioniert und Sie diesen Fehler erhalten haben:
Befolgen Sie die folgenden Befehle Schritt für Schritt, bis Sie Ihr Passwort zurückgesetzt haben:
quelle
$ sudo cat /etc/mysql/debian.cnf
Dies zeigt Details wie-
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock
Oben haben wir Passwort sehen können nur gehen wir verwenden
(GUx0RblkD3sPhHL5)
, dass in den Eingebungenmysql -u debian-sys-maint -p Enter password:
Geben Sie jetzt das Passwort ein ( GUx0RblkD3sPhHL5 ).
Jetzt
exit
von MySQL und wieder anmelden als-mysql -u root -p Enter password:
Geben Sie nun ein neues Passwort ein. Das ist alles, wir haben ein neues Passwort für die weitere Verwendung.
Es hat bei mir funktioniert, hoffe dir auch zu helfen!
quelle
Bitte lesen Sie die offizielle Dokumentation: MySQL: So setzen Sie das Root-Passwort zurück
Wenn Sie Zugriff auf das Terminal haben:
MySQL 5.7.6 und höher:
MySQL 5.7.5 und früher:
quelle
> mysql -u {your_username}
Ich verwende mysql-5.7.12-osx10.11-x86_64.dmg unter Mac OSX
Der Installationsprozess richtet automatisch ein temporäres Kennwort für den Root-Benutzer ein. Sie sollten das Passwort speichern. Das Passwort kann nicht wiederhergestellt werden.
Folgen Sie den Anweisungen
cd /usr/local/mysql/bin/
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
Wenn Sie Ihr Passwort festlegen möchten: "root", dann wäre der Befehl,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
exit
./mysql -u root -p
Der Einfachheit halber sollten Sie
"/usr/local/mysql/bin"
Ihren PFAD hinzufügenJetzt können Sie von überall aus
./mysql -u root -p
das Passwort eingeben und dann erhalten Sie die Eingabeaufforderung mysql>.Ich hoffe es hilft.
quelle
Die Antwort mag albern klingen, aber nachdem ich Stunden Zeit verschwendet habe, habe ich es so zum Laufen gebracht
Ich habe die Fehlermeldung erhalten
Obwohl ich das richtige Passwort eingegeben habe (das temporäre Passwort, das Sie bei der ersten Installation von MySQL erhalten)
Ich habe es richtig verstanden, als ich das Passwort eingegeben habe, als die Passwortabfrage blinkte
quelle
Wenn das Problem weiterhin besteht, versuchen Sie, das Ändern des Durchgangs zu erzwingen
Stoppen Sie MySQL Server (unter Linux):
Stoppen Sie MySQL Server (unter Mac OS X):
Starten Sie den mysqld_safe-Daemon mit --skip-grant-tables
Richten Sie ein neues MySQL-Root-Benutzerpasswort ein
Stoppen Sie MySQL Server (unter Linux):
Stoppen Sie MySQL Server (unter Mac OS X):
Starten Sie den MySQL-Serverdienst und testen Sie die Anmeldung per Root:
quelle
Das Standardkennwort ist null, daher müssen Sie das Kennwort wie folgt ändern.
verbinde dich mit mysql
root # mysql
Verwenden Sie MySQL
mysql> update user set password = PASSWORD ('root') wobei User = 'root'; Laden Sie abschließend die Berechtigungen neu:
mysql> Flush-Berechtigungen; mysql> beenden
quelle
Nur eine Zeile und es hat mein Problem gelöst.
quelle
In Ubuntu 16.04 (MySQL Version 5.7.13) konnte ich das Problem mit den folgenden Schritten beheben:
Befolgen Sie die Anweisungen im Abschnitt B.5.3.2.2 Zurücksetzen des Root-Passworts: Unix und Unix-ähnliche Systeme MySQL 5.7 Referenzhandbuch
Als ich #sudo mysqld_safe --init-file = / home / me / mysql-init ausprobierte, schlug dies fehl. Der Fehler war in /var/log/mysql/error.log
2016-08-10T11: 41: 20.421946Z 0 [Hinweis] Die Ausführung von init_file '/ home / me / mysql / mysql-init' wurde gestartet. 2016-08-10T11: 41: 20.422070Z 0 [FEHLER] / usr / sbin / mysqld: Datei '/ home / me / mysql / mysql-init' nicht gefunden (Fehlercode: 13 - Berechtigung verweigert) 2016-08-10T11: 41: 20.422096Z 0 [FEHLER] Abbruch
Die Dateiberechtigung von mysql-init war nicht das Problem, Apparmor-Berechtigung muss bearbeitet werden
Bearbeiten von #sudo vi /etc/apparmor.d/usr.sbin.mysqld
Laden Sie #sudo /etc/init.d/apparmor neu
Starten Sie mysqld_safe erneut und versuchen Sie Schritt 2 oben. Überprüfen Sie /var/log/mysql/error.log, um sicherzustellen, dass kein Fehler vorliegt und mysqld erfolgreich gestartet wurde
Führen Sie #mysql -u root -p aus
Passwort eingeben:
Geben Sie das Passwort ein, das Sie in mysql-init angegeben haben. Sie sollten sich jetzt als root anmelden können.
Fahren Sie mysqld_safe mit #sudo mysqladmin -u root -p herunter
Starten Sie mysqld auf normale Weise mit #sudo systemctl. Starten Sie mysql
quelle
Wenn Sie MySQL als Teil eines Docker-Images (z. B. auf Port 6606) und einer Ubuntu-Installation (auf Port 3306) haben, reicht es nicht aus, den Port anzugeben:
wird werfen:
Da standardmäßig versucht wird, eine Verbindung zu localhost herzustellen, wird das Problem durch Angabe Ihrer lokalen IP-Adresse behoben:
quelle
In neueren MySQL-Versionen gibt es kein
password
Inmysql.user
Tabelle.Sie müssen also ausführen
ALTER USER
. Fügen Sie diesen einzeiligen Befehl in die Datei ein.Und führen Sie es als Init-Datei aus (als Root- oder MySQL-Benutzer)
Der MySQL-Server muss gestoppt werden, um zu starten
mysqld_safe
.Möglicherweise liegt auch ein Problem mit den Apparmor-Berechtigungen zum Laden dieser Init-Datei vor. Lesen Sie hier mehr https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql
quelle
Wenn Sie noch kein Passwort festgelegt haben, führen Sie es aus
mysql -uroot
, es funktioniert für mich.quelle
Wenn Sie auf einem Mac Probleme beim Anmelden mit dem ersten Kennwort haben, das Sie bei der Installation erhalten haben, können Sie den MySQL-Prozess möglicherweise einfach beenden und dann versuchen.
Also: 1- Führen Sie den folgenden Befehl aus, um die PID von MySQL zu ermitteln:
2- Beenden Sie den Prozess:
Anschließend können Sie sich mit dem folgenden Kennwort mit dem folgenden Kennwort anmelden:
Welche bitten Sie, Ihr Passwort einzugeben. Geben Sie einfach das ursprüngliche Passwort ein.
quelle
Ich hatte ein ähnliches Problem:
Aber in meinem Fall war die Ursache wirklich dumm. Ich habe den Befehl aus einem Word-Dokument kopiert, und das Problem war, dass ein Bindestrich nicht den ASCII-2D-Code, sondern den Unicode E28093 enthielt.
Falscher Weg:
Richtiger Weg:
Beide sehen gleich aus, sind aber nicht gleich (probieren Sie es aus, kopieren Sie es und fügen Sie es ein, indem Sie Ihr Passwort ersetzen).
Angesichts dieser Art von Fehler wird empfohlen, den Befehl einzugeben, anstatt ihn zu kopieren und einzufügen.
quelle
Ich habe versucht, mit der richtigen Antwort von @Lahiru, aber nicht mit MySQL Server Version 8.0.16 (Community) unter macOS Mojave funktioniert.
Befolgen Sie die Anweisungen von Sameer Choudhary oben und mit einigen Anpassungen konnte ich das Root-Passwort ändern und den Root-Zugriff von localhost aktivieren.
Update: All dies ist nicht erforderlich, wenn Sie unter Mac OS mit Homebrew installieren: "Brew Install MySQL"
quelle
Ich hatte dieses Problem mit Ubuntu 18.04 LTS und MySQL Server Version 5.7.27-0ubuntu0.18.04.1 (Ubuntu).
Meine Lösung war (als root mit laufen
sudo -i
)quelle
Ich bin auch auf das gleiche Problem gestoßen, was ich getan habe, war
1) Öffnen Sie Ihren cmd
2) Navigieren Sie zu C: \ Programme \ MySQL \ MySQL Server 8.0 \ bin> (wobei MySQL Server 8.0 je nach installiertem Server unterschiedlich sein kann).
3) Geben Sie dann den folgenden Befehl ein: mysql -u root -p
4) Ich werde nach dem Passwort fragen ... drücken Sie einfach die Eingabetaste, da manchmal das Passwort, das Sie während der Installation eingegeben haben, in leer geändert wird.
Jetzt können Sie einfach auf die Datenbank zugreifen
Diese Lösung funktionierte für mich auf der Windows-Plattform
quelle
Während die Top-Antwort (mit mysqladmin) auf Mac 10.15 funktionierte, funktionierte sie auf Ubuntu nicht. Dann habe ich viele der anderen Optionen ausprobiert, einschließlich des sicheren Starts für MySQL. Keine hat funktioniert. So wird eine neue Antwort hinzugefügt.
Zumindest für die Version, die ich bekam,
5.7.28-0ubuntu0.18.04.4
fehlten AntwortenIDENTIFIED WITH mysql_native_password
. 5.7.28 ist die Standardeinstellung für das aktuelle LTS und sollte daher die Standardeinstellung für die meisten neuen Systeme sein (bis 20.04 LTS herauskommt).Gefunden: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server und jetzt angewendet
was funktioniert.
quelle
Der Fehler, mit dem ich konfrontiert war, war
Es war ein Problem mit dem laufenden Port.
Standardmäßig läuft MySQL
port 3306
.Sie können dies überprüfen, indem Sie ausführen
in einem 32-Bit-System:
sudo /opt/lampp/manager-linux.run
in einem 64-Bit-System:
sudo /opt/lampp/manager-linux-x64.run
und klicken Sie auf die
configure
SchaltflächeIn meinem Fall lief der Port auf 3307 und der von mir verwendete Befehl war
quelle
In meinem Fall habe ich versucht, eine zu bestehen SchaleBefehl an einen Container. In diesem Fall wurde nur das erste Wort interpretiert. Stellen Sie sicher, dass Sie nicht ausgeführt werden:
im Gegensatz zu:
versuchen Sie vielleicht zu zitieren:
quelle