Importar e insertar sql.archivo gz en base de datos con masilla


Quiero insertar un archivo sql.gz en mi base de datos con SSH. ¿Qué debo hacer?

Por ejemplo, tengo una base de datos de números de teléfono cuyo nombre es numbers.sql.gz, ¿qué es este tipo de archivo y cómo puedo importar este archivo a mi base de datos?

Author: 7ochem, 2012-06-10

7 answers

El archivo es un archivo SQL comprimido (gzipped), casi con seguridad un archivo de texto plano con .sql como su extensión. Lo primero que debe hacer es copiar el archivo a su servidor de base de datos a través de scp.. Creo que PuTTY es pscp.exe

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

Luego SSH en su servidor y descomprima el archivo con gunzip

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

numbers.sql

Finalmente, impórtalo a tu base de datos MySQL usando el operador de redirección de entrada <:

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

Si los números.archivo sql no crea una base de datos, pero espera que uno ya esté presente, necesitará incluir la base de datos en el comando también:

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

Si tiene la capacidad de conectarse directamente a su servidor MySQL desde fuera, entonces podría usar un cliente MySQL local en lugar de tener que copiar y SSH. En ese caso, solo necesitaría una utilidad que pueda descomprimir .archivos gz en Windows. Creo que 7zip lo hace, o puede obtener los binarios gzip/gunzip para Windows.

 55
Author: Michael Berkowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-10 19:53:48

Inicie sesión en su servidor usando un programa de shell como putty.

Escriba el siguiente comando en la línea de comandos

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

Donde

DB_File_Name.sql.gz = ruta completa del sql.archivo gz a importar

username = su nombre de usuario de mysql

Target_DB_Name = nombre de la base de datos donde desea importar la base de datos

Cuando presione enter en la línea de comandos, se le pedirá la contraseña. Introduzca su contraseña de MySQL.

¡Has terminado!

 105
Author: seshu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-01 23:02:20

Sin un paso separado para extraer el archivo:

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

Utilizo el fragmento de código anterior para reimportar mysqldump-backups, y lo siguiente para realizar copias de seguridad.

# mysqldump and gzip (-9 ≃ highest compression)
mysqldump --user=DB_USER --password DB_NAME | gzip -9 > DUMP_FILE.sql.gz
 46
Author: feeela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-14 13:12:06

Para un oneliner, en linux o cygwin, necesita hacer autenticación de clave pública en el host, de lo contrario ssh estará pidiendo contraseña.


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

O haga el reenvío de puertos y conéctese al mysql remoto usando una conexión "local":

ssh -L some_port:host:local_mysql_port user@host

Luego haga la conexión mysql en su máquina local a localhost:some_port.

El reenvío de puertos también funcionará desde putty , con la opción similar-L o puede configurarlo desde el panel de ajustes, en algún lugar en el árbol.

 3
Author: Raul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-10 20:46:08

Si tienes scp entonces:

Para mover su archivo de local a remoto:

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

Para mover su archivo de remoto a local:

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

Para exportar su archivo mysql sin iniciar sesión en el sistema remoto:

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

Para importar su archivo mysql sin iniciar sesión en el sistema remoto:

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

Nota: Asegúrese de tener acceso de red a la dirección ip del host remoto

Para comprobar el acceso a la red:

$ping ipaddressofremotehost
 2
Author: sarathkm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-18 02:34:46

Si tiene muchas bases de datos, importa y los volcados son grandes (a menudo trabajo con volcados multigigabyte con Gzip).

Aquí hay una manera de hacerlo dentro de 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

La única ventaja que esto tiene sobre

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

Es que puede hacer fácilmente múltiples sin ingresar la contraseña muchas veces.

 0
Author: rgammans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-19 13:48:33

Si el volcado de mysql era a .archivo gz, necesita gunzip para descomprimir el archivo escribiendo $ gunzip mysqldump.SQL.gz

Esto descomprimirá el .archivo gz y solo almacenará mysqldump.sql en la misma ubicación.

Escriba el siguiente comando para importar el archivo de datos sql:

Mysql mysql-u username-p-h localhost test-database

 0
Author: Raj Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-22 07:17:14