Импорт и вставка 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
Примечание: убедитесь, что у вас есть сетевой доступ к IP-адресу удаленного хоста
для проверки доступа к сети:
$ping ipaddressofremotehost
Если у вас много базы данных, она импортируется, и дампы большие (я часто работаю с многогигабайтными дампами Gzipped).
вот здесь способ сделать это внутри mysql.
$ 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 был a .GZ file, вам нужно gunzip, чтобы распаковать файл, введя $ gunzip mysqldump.язык SQL.ГЗ
Это позволит распаковать .GZ файл и будет просто хранить mysqldump.SQL в том же месте.
введите следующую команду для импорта файла данных sql:
$ mysql - u username-P-h localhost test-database