Импорт и вставка sql.файл GZ в базе замазкой

Я хочу вставить sql.gz файл в мою базу данных с SSH. Что мне делать?

например у меня есть база данных из телефонных номеров, которые зовут numbers.sql.gz, что это за файл и как я могу импортировать этот файл в свою базу данных?

7 ответов


файл представляет собой gzipped (сжатый) файл SQL, почти наверняка текстовый файл .SQL как его расширение. Первое, что вам нужно сделать, это скопировать файл на сервер базы данных через УПП.. Я думаю, что PuTTY - это pscp.exe

# Copy it to the server via pscp
C:\> pscp.exe numbers.sql.gz user@serverhostname:/home/user

затем SSH на ваш сервер и распаковать файл с gunzip

user@serverhostname$  gunzip numbers.sql.gz
user@serverhostname$  ls 

numbers.sql

наконец, импортируйте его в свою базу данных MySQL, используя < оператор перенаправления ввода:

user@serverhostname$  mysql -u mysqluser -p < numbers.sql

если цифры.язык SQL файл не создает базу данных, но ожидает, что она уже будет присутствовать, вам также нужно будет включить базу данных в команду:

user@serverhostname$  mysql -u mysqluser -p databasename < numbers.sql

если у вас есть возможность подключиться непосредственно к серверу MySQL извне, то вы можете использовать локальный клиент MySQL вместо того, чтобы копировать и SSH. В этом случае вам просто понадобится утилита, которая может распаковать.файлы gz в Windows. Я считаю, что 7zip делает это, или вы можете получить двоичные файлы gzip/gunzip для Окна.


войдите в свой сервер, используя программу оболочки, такую как putty.

введите следующую команду в командной строке

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

здесь

DB_File_Name.sql.gz = полный путь sql.файл gz для импорта

username = ваше имя пользователя mysql

Target_DB_Name = имя базы данных, в которую вы хотите импортировать базу данных

когда вы нажмете enter в командной строке, он запросит пароль. Введите Ваш MySQL пароль:.

Вы молодец!


без отдельного шага для извлечения архива:

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

Я использую приведенный выше фрагмент для повторного импорта mysqldump-резервных копий и следующее для его резервного копирования.

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

для oneliner, в linux или cygwin, вам нужно сделать аутентификацию открытого ключа на хосте, иначе ssh будет запрашивать пароль.


gunzip -c numbers.sql.gz | ssh user@host mysql --user=user_name --password=your_password db_name

или сделайте переадресацию портов и подключитесь к удаленному mysql, используя "локальное" соединение:

ssh -L some_port:host:local_mysql_port user@host

затем выполните подключение mysql на локальном компьютере к localhost: some_port.

переадресация портов будет работать от шпаклевка тоже с подобным -L опция или вы можете настройте его из панели настроек, где-то внизу на дереве.


если у вас есть scp, то:

переместить файл с локального на удаленный:

$scp /home/user/file.gz user@ipaddress:path/to/file.gz 

переместить файл с удаленного на локальный:

$scp user@ipaddress:path/to/file.gz /home/user/file.gz

чтобы экспортировать файл mysql без входа в удаленную систему:

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

чтобы импортировать файл mysql без входа в удаленную систему:

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

Примечание: убедитесь, что у вас есть доступ к сети ІР-адрес удаленного хоста

для проверки доступа к сети:

$ping ipaddressofremotehost

Если у вас много баз данных, которые он импортирует, и дампы большие (я часто работаю с многогигабайтными gzipped-дампами).

есть способ сделать это внутри программы.

$ mkdir databases
$ cd databases
$ scp user@orgin:*.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

единственное преимущество над

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

это то, что вы можете легко сделать несколько без ввода пароля много раз.


Если дамп mysql был .GZ файл, вам нужно gunzip, чтобы распаковать файл, введя $ gunzip mysqldump.язык SQL.gz

Это будет распаковывать .GZ файл и будет просто хранить mysqldump.SQL в том же месте.

введите следующую команду для импорта файла данных sql:

$ mysql-u имя пользователя-P-h localhost test-database