es gibt Fehler "mysqldump: Got error: 1049: Unbekannte Datenbank 'thepassword' bei der Auswahl der Datenbank", aber funktioniert, wenn ich "-p userpassword" lösche
Ateş Danış
11
@ AteşDanış Es gibt kein Leerzeichen zwischen -pund thepassword.
Charles Wood
44
Sie sollten nur verwenden -pund werden dann zur Eingabe des Passworts aufgefordert. Auf diese Weise können Sie Ihr Passwort vermeiden, gespeichert zB in.bash_history
nuala
7
Für mich funktioniert dieser Befehl: mysqldump -u YourUser -p YourDatabaseName> wantsqlfile.sql ( Geben Sie den Befehl ein, drücken Sie die Eingabetaste, und dann wird das Kennwort eingegeben).
Shasi Kanth
3
Die Angabe eines Kennworts in der Befehlszeile sollte als unsicher angesehen werden.
Ich denke, Sie haben die Tatsache verpasst, dass er WAMP verwendet - Windows ... gunzip / gzip sind nicht mit Windows gebündelt. Es ist möglich, dass Sie Ihren Befehl ausführen, nachdem Sie einige Dinge installiert haben, aber ich denke, Sie haben diese Tatsache übersehen.
Rolf
2
Durch die Angabe gzip -9wird die resultierende Datei etwas kleiner, da die maximale Komprimierung verwendet wird.
AntonK
39
Zunächst einmal offen Eingabeaufforderung öffnen Sie dann bin Verzeichnis in cmd (ich hoffe , Sie sind uns bewusst mit cmd gehen Befehle) zu bin - Verzeichnis Ihrer MySql Ordner in WAMP Programmdateien.
Für diejenigen, die eine Fehlermeldung wie "Zugriff bei Verwendung von LOCK TABLES verweigert" erhalten, sollten Sie dem Befehl den Parameter "--single-transaction" hinzufügen.
Skyrpex
Ich habe einen Fehler bekommen, mysqldump: [ERROR] unknown option '--database'aber der Ausschluss --databasehat funktioniert.
Hejdav
@ Skyrpex Danke, das war die Lösung, nach der ich gesucht habe.
Martijn
22
Gehen Sie zur Eingabeaufforderung unter diesem Pfad.
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Geben Sie dann diesen Befehl ein, um Ihre Datenbank zu exportieren ( kein Leerzeichen nach -p ).
Wieder W AMP => Windows. Das ist ein Linux-Befehl. gunzip / gzip werden nicht mit Windows gebündelt - und sind möglicherweise nicht verfügbar. scp ... du verstehst, worum es geht.
Rolf
Die Antwort von Opentuned ist großartig . Eine kleine Sache ist das Entfernen des tatsächlichen passwordvon der Befehlszeile: mysqldump -u [Benutzername] -p [Datenbankname]> Dateiname.sql Dies verhindert, dass Personen Ihren Verlauf nach dem Kennwort durchsuchen.
Vincent
1
@Opentuned, was ist mit dem Linux-Fetisch?
Pacerier
for -p [pasword] muss in der Nähe sein, z. B.: mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sqlWarnung: Die Verwendung eines Kennworts auf der Befehlszeilenschnittstelle kann unsicher sein.
Marwan Salim
19
Fügen Sie zum Exportieren von PROCEDUREs, FUNCTIONs & TRIGGERs den folgenden --routinesParameter hinzu:
Der Schalter --routinesmacht den Unterschied :) Gibt es Hinweise, wie nur VERFAHREN, FUNKTIONEN & TRIGGER exportiert werden können? Für diejenigen, die den Schalter vergessen und "reine" DB ohne die "Algorithmen" exportiert haben :)
AntonK
Übrigens wird der Schalter --eventsbenötigt, um Event Scheduler-Ereignisse zu sichern, und die TRIGGERs werden immer exportiert, sofern --skip-triggersnicht anders angegeben (gemäß 7.4.5.3 Speichern gespeicherter Programme )
AntonK
10
Geben Sie diesen Befehl ein, um Ihre Datenbank zu exportieren. Dies schließt auch das Datum ein
Beachten Sie, dass durch die Angabe --databasesAnweisungen als CREATE DATABASE XYZ;und USE XYZ;
eingefügt werden
8
Ich habe meinen Wamp-Server in D: Laufwerk installiert, daher müssen Sie von Ihrer Befehlszeile aus auf den folgenden Pfad gehen -> (und wenn Sie Ihren Wamp in Laufwerk c: installiert haben, ersetzen Sie einfach das d: wtih c: hier)
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8(whatever ur verserion will be displayed here use keyboard Tab button andselect the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name >"d:\backupfile.sql"
Hier ist root der Benutzer meines phpmyadmin- Passworts. Das
Passwort ist das Passwort für phpmyadmin. Wenn Sie also kein Passwort für root festgelegt haben, geben Sie an dieser Stelle nur nichts ein.
Datenbankname ist die Datenbank (für die die Datenbank erstellt wird), backupfile.sql ist die Datei, in der Sie Ihre Datenbank sichern möchten, und Sie können auch den Speicherort der Sicherungsdatei (d: \ backupfile.sql) von einem anderen Ort auf Ihrem Computer ändern
Von allen Möglichkeiten, die ich gefunden habe, ist diese Antwort die einzige, die für mich funktioniert hat. Ich verwende MySQL Version 5.6, daher war der Pfad ... \ MySQL \ MySQL Server 5.6 \ bin für die Eingabeaufforderung. Sie müssen Ihren MySQL-Administrator-Benutzernamen und Ihr Kennwort verwenden. Die für eine bestimmte Datenbank angegebenen funktionieren nicht. Danke Sachin. Selbst die Anweisungen im MySQL-Handbuch für Version 5.6 funktionieren nicht. Die Syntax ist dort unvollständig.
Max West
Funktioniert es wirklich mit dem Raum zwischen -pund password?
Das Problem mit all diesen Lösungen (mit dem > Redirector-Zeichens) besteht darin, dass Sie Ihren Speicherauszug aus stdout schreiben, wodurch die Codierung einiger Zeichen Ihrer Datenbank möglicherweise unterbrochen wird.
Wenn Sie ein Problem mit der Zeichenkodierung haben. Sowie :
FEHLER 1064 (42000): In Ihrer SQL-Syntax ist ein Fehler aufgetreten. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für ...
dann, Sie MÜSSEN verwenden-r Option verwenden, um die Datei zu schreiben.
MySQL
mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql
Umgekehrt verwenden Sie nicht <, um Ihren Speicherauszug in Ihre Datenbank zu importieren. Auch hier werden Ihre Nicht-utf8-Zeichen möglicherweise nicht übergeben. aber lieber Quelloption.
mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql
Dabei ist d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe Ihr tatsächlicher Pfad für mysqldump.exe, mydbname der Name der Datenbank, die Sie exportieren möchten, und d: \ mydb.sql der Pfad, in den Sie möchten die exportierte Datenbank speichern.
- Passwort muss verwendet werden, wenn Sie versuchen, das Passwort auch
einzugeben
0
Für Windows-Betriebssysteme :
Wenn beim Versuch, den Befehl mysqldump auszuführen , der Fehler 1064 mysql (42000) angezeigt wird , beenden Sie das aktuelle Terminal. Und führen Sie den Befehl mysqldump aus.
Ich habe versucht, den Speicherauszug der Datenbank zu übernehmen, die auf dem Docker ausgeführt wurde, und habe den folgenden Befehl gefunden, um dasselbe zu erreichen:
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"read-p 'Would like you like to change the default location [y/n]: ' location_change
read-p "Please enter your username: " u_name
read-p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if["$action"=="export"];thenif["$location_change"=="y"];thenread-p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read-p 'Give the name of database in which you would like to export: ' db_name
read-p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name >$sql_file
elif ["$action"=="import"];thenif["$location_change"=="y"];thenread-p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read-p 'Give the complete path of the .sql file you would like to import: ' sql_file
read-p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name <$sql_file
else
echo "please select a valid command"
fi
Antworten:
Überprüfen Sie zunächst, ob Ihre Befehlszeile den Befehl mysql erkennt. Wenn nicht, gehen Sie zu Befehl und geben Sie Folgendes ein:
Verwenden Sie dann diesen Befehl, um Ihre Datenbank zu exportieren:
Sie werden dann zur Eingabe des Datenbankkennworts aufgefordert .
Dadurch wird die Datenbank in den Pfad exportiert, in dem Sie sich gerade befinden, während Sie diesen Befehl ausführen
Hinweis: Hier finden Sie einige detaillierte Anweisungen zum Import und Export
quelle
-p
undthepassword
.-p
und werden dann zur Eingabe des Passworts aufgefordert. Auf diese Weise können Sie Ihr Passwort vermeiden, gespeichert zB in.bash_history
Verwenden Sie einfach den folgenden Befehl:
Für den Export:
Für den Import:
Hinweis: Zwischen dem Schlüsselwort '-p' und Ihrem Passwort ist kein Leerzeichen.
quelle
gzip -9
wird die resultierende Datei etwas kleiner, da die maximale Komprimierung verwendet wird.Zunächst einmal offen Eingabeaufforderung öffnen Sie dann bin Verzeichnis in cmd (ich hoffe , Sie sind uns bewusst mit cmd gehen Befehle) zu bin - Verzeichnis Ihrer MySql Ordner in WAMP Programmdateien.
Führen Sie den Befehl aus
Drücken Sie die Eingabetaste. Das System exportiert eine bestimmte Datenbank und erstellt eine SQL-Datei an dem angegebenen Speicherort.
Ich hoffe du hast es :) Wenn du irgendwelche Fragen hast, lass es mich wissen.
quelle
Nun, Sie können den folgenden Befehl verwenden:
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
Die generierte Datei ist in demselben Verzeichnis verfügbar, in dem Sie diesen Befehl ausgeführt haben.
Weitere Informationen finden Sie in der offiziellen Referenz für
mysqldump
: Import Export MySQL DBHinweis : Verwenden Sie
--databases
anstelle von,--database
da der letzte nicht mehr unterstützt wird.Genießen :)
quelle
mysqldump: [ERROR] unknown option '--database'
aber der Ausschluss--database
hat funktioniert.Gehen Sie zur Eingabeaufforderung unter diesem Pfad.
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Geben Sie dann diesen Befehl ein, um Ihre Datenbank zu exportieren ( kein Leerzeichen nach -p ).
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
quelle
Suchen Sie Ihre MySQL-Instanz mit:
Wenn dies korrekt ist, exportieren Sie Folgendes: Andernfalls navigieren Sie zur MySQL-Instanz in Ihrem Mamp-Ordner in bin):
Und wenn Sie es gleichzeitig komprimieren möchten:
Sie können diese Datei dann zwischen Servern verschieben mit:
(wobei xxx.xxx.xxx.xxx die Server-IP-Adresse ist)
Und dann importieren Sie mit:
quelle
password
von der Befehlszeile: mysqldump -u [Benutzername] -p [Datenbankname]> Dateiname.sql Dies verhindert, dass Personen Ihren Verlauf nach dem Kennwort durchsuchen.mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql
Warnung: Die Verwendung eines Kennworts auf der Befehlszeilenschnittstelle kann unsicher sein.Fügen Sie zum Exportieren von PROCEDUREs, FUNCTIONs & TRIGGERs den folgenden
--routines
Parameter hinzu:mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
quelle
--routines
macht den Unterschied :) Gibt es Hinweise, wie nur VERFAHREN, FUNKTIONEN & TRIGGER exportiert werden können? Für diejenigen, die den Schalter vergessen und "reine" DB ohne die "Algorithmen" exportiert haben :)--events
benötigt, um Event Scheduler-Ereignisse zu sichern, und die TRIGGERs werden immer exportiert, sofern--skip-triggers
nicht anders angegeben (gemäß 7.4.5.3 Speichern gespeicherter Programme )Geben Sie diesen Befehl ein, um Ihre Datenbank zu exportieren. Dies schließt auch das Datum ein
(kein Leerzeichen nach -p)
quelle
--databases
Anweisungen alsCREATE DATABASE XYZ;
undUSE XYZ;
Ich habe meinen Wamp-Server in D: Laufwerk installiert, daher müssen Sie von Ihrer Befehlszeile aus auf den folgenden Pfad gehen -> (und wenn Sie Ihren Wamp in Laufwerk c: installiert haben, ersetzen Sie einfach das d: wtih c: hier)
Hier ist root der Benutzer meines phpmyadmin- Passworts. Das Passwort ist das Passwort für phpmyadmin. Wenn Sie also kein Passwort für root festgelegt haben, geben Sie an dieser Stelle nur nichts ein. Datenbankname ist die Datenbank (für die die Datenbank erstellt wird), backupfile.sql ist die Datei, in der Sie Ihre Datenbank sichern möchten, und Sie können auch den Speicherort der Sicherungsdatei (d: \ backupfile.sql) von einem anderen Ort auf Ihrem Computer ändern
quelle
-p
undpassword
?Beispiel in localhost
quelle
Das Problem mit all diesen Lösungen (mit dem
>
Redirector-Zeichens) besteht darin, dass Sie Ihren Speicherauszug aus stdout schreiben, wodurch die Codierung einiger Zeichen Ihrer Datenbank möglicherweise unterbrochen wird.Wenn Sie ein Problem mit der Zeichenkodierung haben. Sowie :
dann, Sie MÜSSEN verwenden
-r
Option verwenden, um die Datei zu schreiben.MySQL
Docker verwenden
Hinweis: Dadurch wird der aktuelle Pfad als Speicherauszug in der Instanz bereitgestellt.
Wir haben die Antwort gefunden hier gefunden
Umgekehrt verwenden Sie nicht
<
, um Ihren Speicherauszug in Ihre Datenbank zu importieren. Auch hier werden Ihre Nicht-utf8-Zeichen möglicherweise nicht übergeben. aber lieber Quelloption.quelle
Syntax
Beispiel
Dabei ist d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe Ihr tatsächlicher Pfad für mysqldump.exe, mydbname der Name der Datenbank, die Sie exportieren möchten, und d: \ mydb.sql der Pfad, in den Sie möchten die exportierte Datenbank speichern.
quelle
Ich habe Wamp Server verwendet. ich probierte an
root
ist mein Benutzername für MySQL, und wenn Sie ein Passwort haben, geben Sie es an mit:Hoffe, es funktioniert.
quelle
Für Windows-Betriebssysteme :
Wenn beim Versuch, den Befehl mysqldump auszuführen , der Fehler 1064 mysql (42000) angezeigt wird , beenden Sie das aktuelle Terminal. Und führen Sie den Befehl mysqldump aus.
quelle
Ich habe versucht, den Speicherauszug der Datenbank zu übernehmen, die auf dem Docker ausgeführt wurde, und habe den folgenden Befehl gefunden, um dasselbe zu erreichen:
Docker exec
<container_id/name>
/ usr / bin / mysqldump -u<db_username>
--password =<db_password>
db_name
> .sqlHoffe das hilft!
quelle
Sie können dieses Skript verwenden, um eine Datenbank von einem Terminal zu exportieren oder zu importieren, das unter diesem Link angegeben wird: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
quelle