it-swarm.com.de

Importieren Sie die sql.gz-Datei mit putty in die Datenbank

Ich möchte eine sql.gz-Datei mit SSH in meine Datenbank einfügen. Was soll ich machen?

Ich habe zum Beispiel eine Datenbank mit Telefonnummern, deren Name numbers.sql.gz lautet. Was ist dieser Dateityp und wie kann ich diese Datei in meine Datenbank importieren?

64
babak faghihian

Bei der Datei handelt es sich um eine komprimierte (komprimierte) SQL-Datei, fast sicher eine Klartextdatei mit der Erweiterung .sql. Das erste, was Sie tun müssen, ist die Datei über scp auf Ihren Datenbankserver zu kopieren .. Ich denke, PuTTY ist pscp.exe

# Copy it to the server via pscp
C:\> pscp.exe numbers.sql.gz [email protected]:/home/user

Dann SSH in deinen Server und dekomprimiere die Datei mit gunzip

[email protected]$  gunzip numbers.sql.gz
[email protected]$  ls 

numbers.sql

Importieren Sie es schließlich in Ihre MySQL-Datenbank. Verwenden Sie dazu den Umleitungsoperator <:

[email protected]$  mysql -u mysqluser -p < numbers.sql

Wenn die Datei numbers.sql keine Datenbank erstellt, aber erwartet, dass bereits eine vorhanden ist, müssen Sie auch die Datenbank in den Befehl aufnehmen:

[email protected]$  mysql -u mysqluser -p databasename < numbers.sql

Wenn Sie die Möglichkeit haben, direkt von außen auf Ihren MySQL-Server zuzugreifen, können Sie einen lokalen MySQL-Client verwenden, anstatt SSH kopieren zu müssen. In diesem Fall benötigen Sie nur ein Dienstprogramm, das .gz-Dateien unter Windows dekomprimieren kann. Ich glaube, 7Zip tut dies, oder Sie können die gzip/gunzip-Binärdateien für Windows erhalten.

56

Melden Sie sich mit einem Shell-Programm wie PuTTY bei Ihrem Server an.

Geben Sie den folgenden Befehl in die Befehlszeile ein

zcat DB_File_Name.sql.gz | mysql -u username -p Target_DB_Name

woher

DB_File_Name.sql.gz = vollständiger Pfad der zu importierenden sql.gz-Datei

username = Ihr MySQL-Benutzername

Target_DB_Name = Name der Datenbank, in die Sie die Datenbank importieren möchten

Wenn Sie in der Befehlszeile die Eingabetaste drücken, werden Sie zur Eingabe des Kennworts aufgefordert. Geben Sie Ihr MySQL-Passwort ein.

Du bist fertig!

105
seshu

Ohne einen separaten Schritt, um das Archiv zu extrahieren:

# import gzipped-mysql dump
gunzip < DUMP_FILE.sql.gz | mysql --user=DB_USER --password DB_NAME

Ich benutze das obige Snippet, um mysqldump-backups erneut zu importieren, und das folgende zum Backup.

# mysqldump and gzip (-9 ≃ highest compression)
mysqldump --user=DB_USER --password DB_NAME | gzip -9 > DUMP_FILE.sql.gz
46
feeela

Bei einem Online-Server unter Linux oder Cygwin müssen Sie die Authentifizierung mit einem öffentlichen Schlüssel auf dem Host durchführen. Andernfalls fragt ssh nach dem Kennwort. 


gunzip -c numbers.sql.gz | ssh [email protected] mysql --user=user_name --password=your_password db_name

Oder machen Sie eine Portweiterleitung und stellen Sie über eine "lokale" Verbindung eine Verbindung zum Remote-MySQL her:

ssh -L some_port:Host:local_mysql_port [email protected]

dann führen Sie die MySQL-Verbindung auf Ihrem lokalen Rechner zu localhost: some_port .

Die Portweiterleitung funktioniert auch von PuTTY , mit der ähnlichen Option -L, oder Sie können sie über das Einstellungsfeld irgendwo in der Baumstruktur konfigurieren.

3
Raul

Wenn Sie scp haben, dann:

So verschieben Sie Ihre Datei von lokal auf remote:

$scp /home/user/file.gz [email protected]:path/to/file.gz 

So verschieben Sie Ihre Datei von Remote zu Local:

$scp [email protected]:path/to/file.gz /home/user/file.gz

So exportieren Sie Ihre MySQL-Datei ohne Anmeldung an das Remote-System:

$mysqldump -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p  databasename | gzip -9 > databasename.sql.gz

So importieren Sie Ihre Mysql-Datei ohne Login in das Remote-System:

$gunzip < databasename.sql.gz | mysql -h ipaddressofremotehost -Pportnumber -u usernameofmysql -p 

Hinweis: Stellen Sie sicher, dass Sie über Netzwerkzugriff auf die IP-Adresse des Remote-Hosts verfügen

So überprüfen Sie den Netzwerkzugriff:

$ping ipaddressofremotehost
2
sarathkm

Wenn der mysql-Speicherauszug eine .gz-Datei war, müssen Sie die Datei mit dem Befehl gunzip dekomprimieren, indem Sie $ Gunzip mysqldump.sql.gz eingeben

Dadurch wird die GZ-Datei dekomprimiert und mysqldump.sql am selben Speicherort gespeichert.

Geben Sie den folgenden Befehl ein, um die SQL-Datendatei zu importieren:

$ mysql -u Benutzername -p -h localhost test-database <mysqldump.sql Kennwort: _

0
Raj Kumar

Wenn Sie über viele Datenbanken verfügen, werden diese importiert und die Speicherabbilder sind groß (ich arbeite oft mit GIG-Speicherabbildern mit mehreren Gigabyte).

Hier gibt es eine Möglichkeit, dies in mysql zu tun.

$ mkdir databases
$ cd databases
$ scp [email protected]:*.sql.gz .  # Here you would just use PuTTY to copy into this dir.
$ mkfifo src
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.41-0
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database db1;
mysql> \! ( zcat  db1.sql.gz > src & )
mysql> source src
.
.
mysql> create database db2;
mysql> \! ( zcat  db2.sql.gz > src & )
mysql> source src

Der einzige Vorteil, den dies hat

zcat db1.sql.gz | mysql -u root -p 

ist, dass Sie mehrere Male ohne Eingabe des Kennworts problemlos mehrere Einträge machen können.

0
rgammans

Erstellen einer Ablagedatei SQL.gz auf dem aktuellen Server

$ Sudo apt-get install pigz pv

$ pv | mysqldump --user=<yourdbuser> --password=<yourdbpassword> <currentexistingdbname> --single-transaction --routines --triggers --events --quick --opt -Q --flush-logs --allow-keywords --hex-blob --order-by-primary --skip-comments --skip-disable-keys --skip-add-locks --extended-insert --log-error=/var/log/mysql/<dbname>_backup.log | pigz > /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz

Optional: Befehlsargumente für die Verbindung

--Host=127.0.0.1 / localhost / IP Address of the Dump Server
--port=3306

Importieren der oben erstellten Datei auf einem anderen Server

$ Sudo apt-get install pigz pv

$ zcat /path/to/folder/<dbname>_`date +\%Y\%m\%d_\%H\%M`.sql.gz | pv | mysql --user=<yourdbuser> --password=<yourdbpassword> --database=<yournewdatabasename> --compress --reconnect --unbuffered --net_buffer_length=1048576 --max_allowed_packet=1073741824 --connect_timeout=36000 --line-numbers --wait --init-command="SET GLOBAL net_buffer_length=1048576;SET GLOBAL max_allowed_packet=1073741824;SET FOREIGN_KEY_CHECKS=0;SET UNIQUE_CHECKS = 0;SET AUTOCOMMIT = 1;FLUSH NO_WRITE_TO_BINLOG QUERY CACHE, STATUS, SLOW LOGS, GENERAL LOGS, ERROR LOGS, ENGINE LOGS, BINARY LOGS, LOGS;"

Optional: Befehlsargumente für die Verbindung

--Host=127.0.0.1 / localhost / IP Address of the Import Server
--port=3306

mysql: [Warnung] Die Verwendung eines Kennworts in der Befehlszeilenschnittstelle kann unsicher sein 1.0GiB 00:06:51 [8.05MiB/s] [<=>]

Die optionalen Softwarepakete sind hilfreich, um Ihre Datenbank-SQL-Datei schneller zu importieren 

  • mit einer Fortschrittsansicht (pv)
  • Parallele gzip (pigz/unpigz) zu gzip/gunzip-Dateien parallel

für schnelleres Zippen des Ausgangs

0
rjt1224