Zugriff für Benutzer 'root @ localhost' verweigert (mit Passwort: NO)

115

Ich bin neu in MySQL, ich versuche WordPress auf meinem Windows-Desktop auszuführen und es benötigt MySQL.

Ich installiere alles, Web Platform Installerwas von Microsoft bereitgestellt wird. Ich habe nie ein Root-Passwort für MySQL festgelegt und im letzten Schritt der Installation von WordPress wird nach einem MySQL-Server-Passwort gefragt.

Was ist das Standardkennwort für root (falls vorhanden) und wie kann man es ändern?

Ich habe es versucht:

mysql -u root password '123'

Aber es zeigt mir:

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

Danach versuche ich:

mysql -u root -p

Es wird jedoch nach einem Passwort gefragt, das ich nicht habe.


Update : Wie Bozho vorgeschlagen hat, habe ich Folgendes getan:

  1. Ich habe den MySQL-Dienst über Windows-Dienste gestoppt
  2. CMD geöffnet
  3. Der Speicherort wurde in c: \ Programme \ mysql \ bin geändert
  4. Den folgenden Befehl ausgeführt

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. Der Befehl wurde mit einer Warnung zum Zeichensatz ausgeführt, die ich unten erwähnte

  6. Ich starte den MySQL-Dienst über Windows-Dienste
  7. Ich schreibe in die Kommandozeile

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. Die Befehlszeile zeigt den folgenden Fehler an

    Access denied for user 'root@localhost' (using password:**YES**)

Wie löse ich das? Ich warte darauf, von dir zu hören.

Nasser Hadjloo
quelle
1
Der erste Befehl ist falsch, sollte sein -poder --password, aber nicht password. Deshalb antwortet mysql mit USING PASSWORD NO.
Konerak
3
Niemand scheint ihm die offensichtliche Antwort gegeben zu haben. Das Kennwort für die rootBenutzer-ID ist nach der Erstinstallation leer . Also einfach machen mysql -u root -pund dann einfach die Eingabetaste drücken, dh das Passwort leer lassen. Dann geben Sie natürlich ein Passwort in die rootBenutzer-ID ein.
RiggsFolly
1
@RiggsFolly nein, funktioniert nicht! leeres Passwort gibt mir Zugriff verweigert!
J86
Ich möchte einen Kommentar hinzufügen, da ich nicht sicher bin, ob die akzeptierte Antwort die richtige ist. Geben Sie für mich mysql -u root -p ein und geben Sie dann nach Eingabe des Kennworts das richtige ein (das bei der Installation festgelegte). Stattdessen hat es nicht funktioniert, dem -p den Namen einer Datenbank mit einer mir bekannten DB zu beweisen.
Carmine Tambascia

Antworten:

48

Sie können Ihr Root-Passwort zurücksetzen . Beachten Sie, dass es nicht ratsam ist, root ohne Passwort zu verwenden.

Bozho
quelle
@Bozho - Ich folge der Anweisung und erstelle eine Textdatei und rufe sie über den genannten Befehl auf. Danach sehe ich mich mit 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ konfrontiert -------- und schließlich, wenn ich meinen MySQL-Dienst wieder starte, habe ich den genauen Fehler, aber diesmal mit (using password:yes)was soll ich tun?
Nasser Hadjloo
@Bozo - Beachten Sie, dass ich Ihren Befehl nicht ausführen konnte, mit dem mysqldt-ntich ihn ausgeführt habe. mysqldt -ntEigentlich ist der erste Befehl für cmd nicht erkennbar. Ich warte darauf, von dir zu hören.
Nasser Hadjloo
@Bozho - Ich habe meine Frage mit dem Fehler aktualisiert. Vielen Dank für Ihre Zeit.
Nasser Hadjloo
@Bozho - gibt es eine Möglichkeit, meine MySQL-Fehler zu aktualisieren / anzupassen? ** Update "Zugriff für Benutzer 'root @ localhost' verweigert (mit Passwort: NO)" auf "Zugriff für Benutzer 'myname @ localhost' verweigert (mit Passwort: NO)" **
Hitesh
80

für diese Art von Fehler; Sie müssen lediglich ein neues Kennwort für den Root-Benutzer als Administrator festlegen. Befolgen Sie die Schritte wie folgt:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Stoppen Sie den Dienst / Daemon von MySQL

    [root ~]# service mysql stop   
    mysql stop/waiting
  2. Starten Sie MySQL ohne Berechtigungen mit der folgenden Option. Diese Option wird zum Starten verwendet und verwendet nicht das Berechtigungssystem von MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

In diesem Moment scheint das Terminal anzuhalten . Lassen Sie das sein und verwenden Sie ein neues Terminal für die nächsten Schritte.

  1. Geben Sie die MySQL-Eingabeaufforderung ein

    [root ~]# mysql -u root
    mysql> 
  2. Korrigieren Sie die Berechtigungseinstellung des Root-Benutzers.

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)

* wenn Sie kein Passwort oder eher ein leeres Passwort möchten

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Bestätigen Sie die Ergebnisse:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Beenden Sie die Shell und starten Sie MySQL im normalen Modus neu.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
  2. Jetzt können Sie sich mit dem von Ihnen festgelegten Passwort erfolgreich als Root anmelden

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 
user2977819
quelle
2
Drücken Sie die Eingabetaste nach "[root ~] # mysqld_safe --skip-grant-tables &" und öffnen Sie ein anderes Terminal, um "[root ~] # mysql -u root"
Liuda
Ich bin auf dieses Problem gestoßen, und ich habe viel getan. Vergiss einfach, die DB-Dienste neu zu starten ... vielen Dank!
Bruce Lee
3
In Schritt 3 bekomme ichERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
MrMartin
4
@MrMartin, zu erstellen , die dir sudo mkdir -p /var/run/mysqldund die Erlaubnis, essudo chown mysql:mysql /var/run/mysqld
niceday
Das ist die Antwort, die mir sehr geholfen hat!
Jones G
17

1) Sie können das Root-Passwort festlegen, indem Sie die MySQL-Konsole aufrufen. Es liegt in

C:\wamp\bin\mysql\mysql5.1.53\bin standardmäßig.

Gehen Sie in das Verzeichnis und geben Sie MySQL ein. Stellen Sie dann das Passwort wie folgt ein.

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Sie können die phpmyadmin-Anwendung von wamp für Root-Benutzer konfigurieren, indem Sie sie bearbeiten

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Hinweis: - Wenn Sie xampp verwenden, befindet sich die Datei unter

C:\xampp\phpMyadmin\config.inc.php

Es sieht aus wie das:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

Der Fehler "Zugriff für Benutzer 'root @ localhost' verweigert (mit Kennwort: NO)" wird behoben, wenn Sie $cfg['Servers'][$i]['AllowNoPassword']auf false setzen

Wenn Sie das Kennwort für 'root @ localhost' privat geändert haben, müssen Sie zwei Schritte ausführen, um den Fehler "Zugriff für Benutzer 'root @ localhost' verweigert" zu beheben:

  1. Wenn ['Passwort'] leere Anführungszeichen wie '' hat, setzen Sie Ihr Passwort zwischen Anführungszeichen.
  2. Ändern Sie das (mit Passwort: NEIN) in (mit Passwort: JA)

Dadurch wird der Fehler behoben.

Hinweis: phpmyadmin ist ein separates Tool, das mit wamp geliefert wird. Es bietet lediglich eine Schnittstelle zu MySQL. Wenn Sie das Passwort meines SQL-Roots ändern, sollten Sie die phpmyadmin-Konfigurationen ändern. Normalerweise ist phpmyadmin für den Root-Benutzer konfiguriert.

Yellobird
quelle
Nein, Sie können nicht. MySQL wird nicht gestartet: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> MySQL FEHLER 1045 (28000): Zugriff für Benutzer 'ODBC' @ 'localhost' verweigert (mit Passwort: NO)
Jaxx0rr
9

Ich habe den gleichen Fehler auf OS X El Captain erhalten. MySQL-Version 5.7. Nachdem ich diese Schritte ausgeführt hatte, konnte ich mit root eine Verbindung zu MySQL herstellen.

Stoppen Sie den MySQL-Server

sudo mysql.server stop

Starten Sie MySQL im abgesicherten Modus

sudo mysqld_safe --skip-grant-tables

Ändern Sie mit mysqld die Datenbank in mysql und aktualisieren Sie die Details für den Benutzer 'root'.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Beenden Sie danach den Prozess 'mysqld_safe' und starten Sie mysql normal. Sie sollten sich mit root und einem neuen Passwort bei mysql anmelden können. SQL-Dokumente für weitere Details

Sushantkumar M.
quelle
4

Bearbeiten Sie einfach die my.iniDatei im Pfad C: \ xampp \ mysql \ bin. Einfach hinzufügen:

skip-grant-tables

Linie zwischen den Linien von # The MySQL server [mysqld]und port=3306. Starten Sie dann den MySQL-Server neu.

Sieht aus wie:

Bildschirmfoto

Ryan Oscar
quelle
Wenn ich das mache, bekomme ich einen weiteren Fehlercommunications link failure
Ahmed Hussein
3

Stellen Sie sicher, dass der MySQL-Dienst auf Ihrem Computer ausgeführt wird, und befolgen Sie die Anweisungen von MySQL zum erstmaligen Einrichten von root (suchen Sie nach "Windows", und Sie gelangen zu den Schritten zum Einrichten von root):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

sholsapp
quelle
Diese Lösung funktioniert bei mir nicht, da ich nicht das Passwort habe, das ich im zweiten Schritt benötige.
Nasser Hadjloo
Das habe ich mir angesehen, als ich den Link gesendet habe. Sind Sie sicher, dass dies nicht funktioniert? Ich sehe keinen Verweis auf das alte Passwort. Gehen Sie unter Windows folgendermaßen vor: shell> mysql -u root mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root' @ '%' = PASSWORD ('newpwd');
Sholsapp
1
Wie ich bereits sagte, habe mysql -u rootich beim Schreiben ein Problem und kann mich nicht bei MySQL anmelden, um die zweite Zeile auszuführen. Wie benutzt man diesen Befehl?
Nasser Hadjloo
3

Verwenden Sie mysql -u root -p Es wird nach dem Passwort gefragt, das Passwort eingegeben und eingegeben.

Vikash Kumar
quelle
Dies funktionierte, nachdem mir der Zugriff für Benutzer verweigert wurde.
Shawn W
2

Eine andere Lösung, wenn jemand den Fehler erhält Das angegebene Kennwort für das Benutzerkonto 'root' ist ungültig oder es konnte keine Verbindung zum Datenbankserver hergestellt werden auch nicht mit dem richtigen Kennwort

• Löschen Sie in der Windows-Registrierung den Registrierungsschlüssel mysql_pwd unter HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Deinstallieren Sie ältere Versionen des MySQL .NET-Connectors

• Laden Sie den neuesten MySql .NET Connector herunter und installieren Sie ihn .

Silbersturm
quelle
Das Überprüfen des Passworts und des Datenbanknamens hat bei mir funktioniert. +1
Abhinav Dobhal
2

Für MySQL 5.7. Dies sind die folgenden Schritte:

Stoppen Sie Ihren MySQL-Server vollständig. Dies kann durch Zugriff auf das Fenster "Dienste" in Windows XP und Windows Server 2003 erfolgen, in dem Sie den MySQL-Dienst beenden können.

Öffnen Sie Ihre MS-DOS-Eingabeaufforderung mit "cmd" im Fenster "Ausführen". Navigieren Sie darin mit dem Befehl cd zu Ihrem MySQL-Ordner bin, z. B. C: \ MySQL \ bin.

Führen Sie den folgenden Befehl an der Eingabeaufforderung aus: mysqld.exe -u root --skip-grant-tables

Lassen Sie die aktuelle MS-DOS-Eingabeaufforderung unverändert und öffnen Sie ein neues MS-DOS-Eingabeaufforderungsfenster.

Navigieren Sie mit dem Befehl cd zu Ihrem MySQL-Bin-Ordner, z. B. C: \ MySQL \ bin.

Geben Sie mysql ein und drücken Sie die Eingabetaste.

Die MySQL-Eingabeaufforderung sollte jetzt funktionieren. Geben Sie use mysql ein. damit wir zur "mysql" Datenbank wechseln.

Führen Sie den folgenden Befehl aus, um das Kennwort zu aktualisieren:

Benutzerset aktualisieren authentication_string = password ('1111') wobei user = 'root';

Katie
quelle
1

Ersetzen Sie in Ihrem Code das 'root' durch Ihren Server- Benutzernamen und Ihr Passwort durch Ihr Server-Passwort. Wenn Sie beispielsweise DB und Ihre PHP-Dateien auf dem Server http://www.example.com haben, müssen Sie diese Server-Site natürlich mit Ihrem Benutzernamen und Passwort eingeben.

Pir Fahim Shah
quelle
1

Wenn Sie XAMPP verwenden gehen Sie einfach auf C:\xampp\phpMyAdminund öffnen Sie dann config.inc.phpfind $cfg['Servers'][$i]['password'] = ''Linie und Ihr Passwort setzen dort.

Ajay Rawat
quelle
1

Für einige Informationen erhalte ich Fehler nach dem Ändern des Passworts:

Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: NO)

Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit Passwort: YES)

In beiden Fällen ist ein Fehler aufgetreten.

Aber danach habe ich es versucht

mysql -uroot -ppassword anstatt

mysql -u root -p password -> mit Leerzeichen zwischen -uroot und -ppassword. Wenn also jemand Probleme hat, kann er dies versuchen.

profiile_samir
quelle
0

Manchmal geschieht dies nur aufgrund der Installation von Wamp oder der Änderung der Kennwortoptionen des Root-Benutzers. Man kann Privilegien -> root (Benutzer) verwenden und dann die Kennwortoption auf NEIN setzen, um die Dinge ohne Kennwort auszuführen, ODER das Kennwort festlegen und es in der Anwendung verwenden.

Sayyad
quelle
0
  1. Ändern Sie das Passwort von config.inc.phpvorhanden in C:\xampp\phpMyAdmin.
  2. Geben Sie mysql -u root -pdie Eingabeaufforderung ein.
  3. Sie werden aufgefordert, das Passwort einzugeben. Geben Sie das Passwort ein, das Sie im Feld aktualisiert haben config.inc.php.
user12682744
quelle
0

Wenn Sie den Port in einen nicht standardmäßigen geändert haben, müssen Sie ihn angeben:

$ connection = mysqli_connect ('localhost: 3308', 'root', '', 'loginapp');

Mitch
quelle
-3
mysqladmin -u root -p password

geben Sie Ihr current password

dann

geben Sie Ihr new password

djrconcepts
quelle
1
Der springende Punkt ist, dass das OP das aktuelle Passwort nicht kennt , weil es nie gesetzt wurde .
Nateowami
Ich kannte mein Passwort, hatte jedoch Probleme mit der Anmeldung mit dem temporären Passwort. Diese Antwort hat bei mir funktioniert
Bernard