Dies ist eine schwierige Frage, ich habe die folgende Ausgabe:
mysqldump: Fehler: 1045: Zugriff für Benutzer 'root' @ 'localhost' (mit Kennwort: YES) beim Verbindungsaufbau verweigert
Beim Versuch, meine Datenbank mit mysqldump
unter Windows XP zu exportieren. Der Benutzername ist root, das Passwort ist korrekt und enthält nur alphanumerische Zeichen. Ich habe verschiedene Fälle ausprobiert, mit/ohne Anführungszeichen, mit -u
und -p
, mit --user=
und --password=
und anderen Methoden zur Angabe von Benutzernamen/Kennwörtern usw., mit Angabe des Hosts (alles lokal) und sogar mit --databases
der Datenbank leer. Der Fehler ist bei Verwendung eines Kennworts immer derselbe und immer derselbe, mit Ausnahme der Meldung "NEIN", wenn dies nicht der Fall ist. Ich habe viele Korrekturen durch Suchanfragen ohne Erfolg ausprobiert. Ein Fix schlug die Überprüfung von mysql.conf vor, aber der Windows-Build scheint keinen zu haben. Die Berechtigungsnachweise (und in der Tat die Befehlszeilenparameter) funktionieren perfekt mit mysql.exe - dieses Problem scheint nur die mysqldump.exe zu betreffen.
Vielen Dank für deine Hilfe.
Das hat bei mir funktioniert
mysqldump -u root -p mydbscheme > mydbscheme_dump.sql
nachdem Sie den Befehl ausgeführt haben, werden Sie nach einem Kennwort gefragt:
Enter password:
durch Eingabe des Passworts wird die Dump-Datei erstellt.
Wenn Sie mit mysql eine Verbindung zur Datenbank herstellen können, aber für mysqldump ein Fehler angezeigt wird, besteht das Problem möglicherweise darin, dass Sie nicht über die Berechtigungen zum Sperren der Tabelle verfügen.
Versuchen Sie in diesem Fall die Option --single-transaction.
mysqldump -h database.example.com -u mydbuser -p mydatabase --single-transaction > /home/mylinuxuser/mydatabase.sql
Der Zugriff, der verweigert wird, betrifft wahrscheinlich das Windows-Dateisystem, nicht die MySQL-Datenbank. Versuchen Sie, die Ausgabedatei an einen Ort umzuleiten, an dem Ihr Konto Dateien erstellen darf.
Versuchen Sie, den Speicherplatz zu entfernen, wenn Sie die -p-Option verwenden. Dies funktioniert für mein OSX und Linux mysqldump:
mysqldump -u user -ppassword ...
Setzen Sie die GRANT
-Berechtigungen ein:
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%' IDENTIFIED BY 'password';
Geben Sie das Passwort nicht mit dem Befehl ein. Geben Sie einfach ein,
mysqldump -u (Benutzername) -p (Datenbankname)> (Sicherungsdatei) .sql
Sie erhalten dann eine Aufforderung zur Kennworteingabe.
Zugriffsproblem behoben, wenn ich die Eingabeaufforderung im Modus Administrator
ausführe.
Gehe zu Start-> All Programs -> Accessories
klicke mit der rechten Maustaste auf Command Prompt
klicke auf Run as..
Wähle The Following User
wähle administrator username
aus der Auswahloption Passwort eingeben, falls vorhanden, klicke auf die Schaltfläche OK
.
Beispiel 1: Für die gesamte Datenbanksicherung in MySQL mit der Eingabeaufforderung.
In Windows 7 und 8
C:\Program Files <x86>>\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p >testDB.sql
Enter Password: *********
In Windows XP
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p >testDB.sql
Enter Password: *********
Es fragt nach dem Passwort für die Anmeldeinformationen Passwort eingeben und klicken Sie auf die Schaltfläche Enter.
Beispiel 2: Für bestimmte Tabellen Backup/Dump in MySQL mit Eingabeaufforderung.
In Windows 7 und 8
C:\Program Files <x86>>\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p images>testDB_Images.sql
Enter Password: *********
In Windows XP
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump test -u root -p images>testDB_Images.sql
Enter Password: *********
Dumpt-Datei wird unter Ordner erstellt
In Windows XP
C:\Program Files\MySQL\MySQL Server 5.5\bin
In Windows 7 und 8
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin
Hinweis: Überprüfen Sie den MySQL-Installationsordner in Windows 7, 8, während Sie die Eingabeaufforderung ausführen. Wenn es sich bei MySQLWorkbench
um eine 32-Bit-Version handelt, wird sie im Ordner Program Files (x86)
eines anderen Program Files
-Ordners installiert.
Ohne -u
und -p
zu arbeiten, funktionierte für mich (als ich als root angemeldet war):
mysqldump --opt mydbname > mydbname.sql
mysqldump -h Hostname -u Benutzername -P Port -B Datenbank --no-create-info -p> output.sql
Ich denke, Sie sollten die Argumente angeben
Sie müssen in Ihr Kennwort Backslashes einfügen, die Shell-Metazeichen enthalten, z.
mysqldump -u (benutzer) -p (passwd) -h (Host_oder_IP) database_to_backup> backup_file.sql
beispiel:
mysqldump -u gott -pfahl -h 10.0.10.10 buchhaltung> buchhaltung_20141209.sql
dadurch würde eine SQL-Sicherungsdatei für die Abrechnungsdatenbank auf dem Server 10.0.10.10 erstellt. Manchmal wird Ihr Fehler angezeigt, wenn sich localhost nicht in config befindet. Das Festlegen der IP-Adresse des Servers kann hilfreich sein.
Ich musste die einzelnen Häkchen nach dem Passwort-Flag entfernen:
--password=mypassword
und NICHT
--password='mypassword'
Für MAMP PRO-Benutzer (oder alle, die sich mit mysql an einem seltsamen Speicherort befinden) geben Sie an, den vollständigen Pfad des mysql von den Boonies und den vollständigen Pfad zu Ihrem lokalen Benutzerordner anzugeben, in dem Sie die Datei sichern möchten. Erlaubnis verweigert Fehler "..
Folgendes arbeitete für mich nach 3 Stunden Recherche:
/Applications/MAMP/Library/bin/mysqldump -u root -proot YOUR_DB > /Users/YOUR_USER/yourdump2.sql
Ich bin gerade nach einer Neuinstallation von MySQL 5.6.16 darauf gestoßen.
Seltsamerweise funktioniert es ohne das angegebene oder gekennzeichnete Passwort:
mysqldump -u root myschema mytable > dump.sql
In der Vergangenheit trat dasselbe Problem auf, nachdem ich die Anweisung mysqldump aus einer MS Word-Datei kopiert hatte.
Wenn Sie die Aussage direkt eingeben, hat alles gut funktioniert.
Im Hex-Editor wurde das "-" der nicht funktionierenden Anweisung durch das Unicode-Zeichen e2 80 93 dargestellt ( http://www.fileformat.info/info/unicode/char/2013/index.htm )
Geben Sie bei der Sortierung das Kennwort direkt ein, und überprüfen Sie den Code zum Einfügen von Kopien, da die unicode-Zeichenfolge (oder andere Codierung) möglicherweise ein Problem verursachen.
Ich hatte den gleichen Fehler für die letzten 2 Tage. Versuchte ein paar Dinge. Nichts hat geklappt.
Aber das hat funktioniert:
Erstellen Sie einen anderen Benutzer. Gib es alles.mysqldump -u new_user db_name > db_name.sql
// kein fehler
Ich hatte das Problem, dass es Ansichten gab, die einen fehlerhaften "DEFINER" hatten, der der Benutzer ist, der die Ansicht definiert hat. Der in der Ansicht verwendete DEFINER wurde vor einiger Zeit als "root von einer zufälligen Arbeitsstation" entfernt.
Überprüfen Sie, ob möglicherweise ein Problem vorliegt, indem Sie Folgendes ausführen:
USE information_schema;
SELECT DEFINER, SECURITY_TYPE FROM views;
Ich habe den DEFINER geändert (tatsächlich den DEFINER auf [email protected]
Und den SQL SECURITY-Wert auf INVOKER
gesetzt), damit die Ansicht mit den Berechtigungen des aufrufenden Benutzers anstelle des definierenden Benutzers ausgeführt wird sinnvoller) mit ALTER VIEW .
Dies ist schwierig, da Sie die entsprechende ALTER VIEW
- Anweisung aus information_schema.views
Erstellen müssen. Überprüfen Sie daher Folgendes:
Mysql antwortet mit verweigertem Zugriff mit korrekten Anmeldeinformationen, wenn für das mysql-Konto REQUIRE SSL
aktiviert ist
Die ssl_ca
-Datei (mindestens) musste in den Verbindungsparametern angegeben werden.
Zusätzliche SSL-Parameter sind möglicherweise erforderlich und werden hier dokumentiert: http://dev.mysql.com/doc/refman/5.7/de/secure-connection-options.html
Auch hier veröffentlicht https://stackoverflow.com/a/39626932/1695680
Ich habe einen laufenden Apache-Prozess entdeckt, der auf den MySQL-Server zugreift und diesen Fehler verursacht. Daher schlage ich vor, sicherzustellen, dass alle Prozesse, die möglicherweise mit der Datenbank interagieren, zuvor heruntergefahren werden.