359 Stimmen

Wie exportiere und importiere ich eine .sql-Datei von der Kommandozeile mit Optionen?

Nicht duplizieren! auf der Suche nach einer Funktion haben phpmyadmin während des Exports in der Kommandozeile

Ich möchte eine .sql-Datei in eine und aus einer MySQL-Datenbank exportieren und importieren. Kommandozeile .

Gibt es einen Befehl zum Exportieren einer .sql-Datei in MySQL? Wie kann ich sie dann importieren?

Bei der Durchführung des Exports/Imports kann es zu folgenden Problemen kommen Zwänge wie aktivieren/deaktivieren Fremdschlüsselprüfung o nur Tabellenstruktur exportieren .

Können wir diese Optionen mit mysqldump ?

einige Beispiele für Optionen

enter image description here

17voto

Youcha Punkte 1494

Versuchen Sie

mysqldump databaseExample > file.sql

8voto

Howard.TH Punkte 111

Da ich nicht genug Ansehen habe, um nach dem höchsten Beitrag zu kommentieren, füge ich hier hinzu.

Verwenden Sie '|' auf der Linux-Plattform, um Speicherplatz zu sparen.

Danke @Hariboo, fügen Sie Ereignisse/Auslöser/Routenparameter hinzu

mysqldump -x -u [uname] -p[pass]  -C --databases db_name  --events --triggers --routines | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ '  | awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }'  | grep -iv 'set @@' | trickle -u 10240 mysql -u username -p -h localhost DATA-BASE-NAME

einige Probleme/Tipps:

Fehler: ......nicht vorhanden bei Verwendung von LOCK TABLES

# --lock-all-tables-x , this parameter is to keep data consistency because some transaction may still be working like schedule.
# also you need check and confirm: grant all privileges on *.* to root@"%" identified by "Passwd";

ERROR 2006 (HY000) in Zeile 866: Der MySQL-Server ist verschwunden mysqldump: Errno 32 beim Schreiben erhalten

# set this values big enough on destination mysql server, like: max_allowed_packet=1024*1024*20
# use compress parameter '-C'
# use trickle to limit network bandwidth while write data to destination server

ERROR 1419 (HY000) in Zeile 32730: Sie haben nicht das SUPER-Recht und die binäre Protokollierung ist aktiviert (Sie könnte die weniger sichere Variable log_bin_trust_function_creators verwenden wollen)

# set SET GLOBAL log_bin_trust_function_creators = 1;
# or use super user import data

ERROR 1227 (42000) in Zeile 138: Zugriff verweigert; Sie benötigen (mindestens eines) der SUPER-Privilegien für diese Operation mysqldump: Errno 32 beim Schreiben erhalten

# add sed/awk to avoid some privilege issues

Ich hoffe, das hilft!

3voto

Ridhwan Luthra Punkte 101

Sie können dies verwenden Skript zum Exportieren oder Importieren eine beliebige Datenbank von dem unter diesem Link angegebenen Terminal: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh

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" ]; then
    if [ "$location_change" == "y" ]; then
        read -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" ]; then
    if [ "$location_change" == "y" ]; then
        read -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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X