exportar - ¿Cómo importar un archivo SQL usando la línea de comandos en MySQL?
importar base de datos mysql consola xampp (30)
Importar una base de datos
Ir a conducir:
command: d:
Inicio de sesión de MySQL
command: c:/xampp/mysql/bin/mysql -u root -p
Se pedirá pwd. Ingresarlo:
pwd
Seleccione la base de datos
use DbName;
Proporcione el nombre del archivo
/.DbName.sql
Tengo un archivo .sql
con una exportación de phpMyAdmin
. Quiero importarlo en un servidor diferente usando la línea de comandos.
Tengo una instalación de Windows Server 2008 R2. .sql
archivo .sql
en la unidad C y probé este comando
database_name < file.sql
No está funcionando, consigo errores de sintaxis.
- ¿Cómo puedo importar este archivo sin problemas?
- ¿Necesito crear una base de datos primero?
- Abra la línea de comandos de MySQL
- Escriba la ruta de acceso de su directorio de mysql bin y presione Entrar
- Pegue su archivo SQL dentro de la carpeta
bin
del servidor mysql. - Crear una base de datos en MySQL.
- Utilice esa base de datos particular donde desea importar el archivo SQL.
- Escriba
source databasefilename.sql
y escriba - Su archivo SQL se carga con éxito.
A veces, el puerto definido y la dirección IP del servidor de esa base de datos también son importantes ...
mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql
Agregue la opción --force
:
mysql -u username -p database_name --force < file.sql
Al igual que en https://.com/a/17666285/1888983
Diferencias clave para mí:
- La base de datos tiene que existir primero
- No hay espacio entre
-p
y la contraseña
shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql
Ejecutando fedora 26 con MariaDB.
Con respecto al tiempo que lleva importar grandes archivos: lo más importante es que lleva más tiempo porque la configuración predeterminada de MySQL es autocommit = true
. Debe desactivarlo antes de importar su archivo y luego verifique cómo funciona la importación como una gema.
Solo necesitas hacer lo siguiente:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
Creo que vale la pena mencionar que también puedes cargar un archivo comprimido (comprimido) con zcat
como se muestra a continuación:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
El siguiente comando funciona para mí desde la línea de comandos (cmd) en Windows 7 en WAMP .
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Entre todas las respuestas, para el problema anterior, esta es la mejor:
mysql> use db_name;
mysql> source file_name.sql;
Estoy usando Windows 10 con Powershell 5 y encontré que casi todas las soluciones "tipo Unix" no funcionan para mí.
> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+ ~
The ''<'' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Termino usando este comando.
> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]
y funciona perfectamente, espero que ayude.
Gracias a la answer @ por cierto.
Los siguientes pasos ayudan a cargar file.sql
en la base de datos MySQL.
Paso 1: file.sql.zip
en cualquier directorio y descomprima allí
Nota : sudo apt-get install unzip
: sudo apt-get unzip file.sql.zip
Paso 2: Ahora navega a ese directorio. Ejemplo: cd /var/www/html
Paso 3: mysql -u username -p database-name < file.sql
Ingrese la contraseña y espere hasta que se complete la carga.
Mientras que la mayoría de las respuestas aquí solo mencionan el comando simple
mysql -u database_user -p [db_name] <database_file.sql
hoy en día es bastante común que las bases de datos y las tablas tengan una combinación de utf8 donde este comando no es suficiente. Teniendo utf8-collation en las tablas exportadas, se requiere usar este comando:
mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql
Surley esto también funciona para otros conjuntos de caracteres, cómo se puede ver la notación correcta aquí:
Un comentario también mencionó que si una base de datos nunca existe, primero se tenía que crear una base de datos vacía. Esto puede ser correcto en algunos casos, pero depende del archivo de exportación. Si el archivo exportado ya incluye el comando para crear la base de datos, la base de datos nunca debe crearse en un paso separado, lo que incluso podría causar un error en la importación. Por lo tanto, en la importación, es aconsejable mirar primero en el archivo para saber qué comandos se incluyen allí, en la exportación es recomendable tener en cuenta la configuración, especialmente si el archivo es muy grande y difícil de leer en un editor.
Todavía hay más parámetros para el comando que se enumeran y explican aquí:
https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
Si utiliza otra versión de la base de datos, considere buscar también la versión correspondiente del manual. Los enlaces mencionados se refieren a la versión 5.7 de MySQL.
No es necesario especificar el nombre de la base de datos en la línea de comandos si el archivo .sql contiene CREATE DATABASE IF NOT EXISTS db_name
y USE db_name
sentencias.
Solo asegúrese de conectarse con un usuario que tenga permisos para crear la base de datos, si la base de datos mencionada en el archivo .sql no existe.
Para fines de copia de seguridad, cree un archivo BAT y ejecute este archivo BAT utilizando el Programador de tareas . Tomará una copia de seguridad de la base de datos; simplemente copie la siguiente línea y péguela en el Notepad de Notepad y luego guarde el archivo .bat y ejecútelo en su sistema.
@echo off
for /f "tokens=1" %%i in (''date /t'') do set DATE_DOW=%%i
for /f "tokens=2" %%i in (''date /t'') do set DATE_DAY=%%i
for /f %%i in (''echo %date_day:/=-%'') do set DATE_DAY=%%i
for /f %%i in (''time /t'') do set DATE_TIME=%%i
for /f %%i in (''echo %date_time::=-%'') do set DATE_TIME=%%i
"C:/Program Files/MySQL/mysql server 5.5/bin/mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
Para importar múltiples archivos SQL a la vez, usa esto:
# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done
Para la importación simple:
# Unix-based solution
mysql -u root -pPassword DataBase < data.sql
Para WAMP :
#mysqlVersion replace with your own version
C:/wamp/bin/mysql/mysqlVersion/bin/mysql.exe -u root -pPassword DataBase < data.sql
Para XAMPP:
C:/xampp/mysql/bin/mysql -u root -pPassword DataBase < data.sql
Para importar una sola base de datos, use el siguiente comando.
mysql -u username -p password dbname < dump.sql
Para importar múltiples volcados de base de datos, use el siguiente comando.
mysql -u username -p password < dump.sql
Para obtener información, solo tuve la raíz predeterminada + sin contraseña, no funciona con todas las respuestas anteriores.
He creado un nuevo usuario con todos los privilegios y una contraseña. Funciona.
-password SIN ESPACIO.
Para volcar una base de datos en un archivo SQL, use el siguiente comando
mysqldump -u username -p database_name > database_name.sql
Para importar un archivo SQL a una base de datos (asegúrese de estar en el mismo directorio que el archivo SQL o proporcione la ruta completa al archivo)
mysql u -username -p database_name < database_name.sql
Pensé que podría ser útil para aquellos que usan Mac OS X :
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
Reemplace xampp
con mamp
u otros servidores web.
Podemos usar este comando para importar SQL desde la línea de comandos:
mysql -u username -p password db_name < file.sql
Por ejemplo, si el nombre de usuario es root
y la contraseña es password
. Y tiene un nombre de base de datos como bank
y el archivo SQL es bank.sql
. Entonces, simplemente haz esto:
mysql -u root -p password bank < bank.sql
Recuerda donde está tu archivo SQL. Si su archivo SQL está en la carpeta / directorio del escritorio, vaya al directorio del escritorio e ingrese el comando de esta manera:
~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql
Y si usted está en el directorio del Project
y su archivo SQL está en el directorio de Desktop
. Si desea acceder a él desde el directorio del Project
, puede hacer lo siguiente:
~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
Proporcionar credenciales en la línea de comando no es una buena idea. Las respuestas anteriores son geniales, pero no mencionan
mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql
Donde etc / myhost.cnf es un archivo que contiene el host, el usuario, la contraseña y evita exponer la contraseña en la línea de comandos. Aquí hay una muestra,
[client]
host=hostname.domainname
user=dbusername
password=dbpassword
Seguí corriendo en el problema donde no se creó la base de datos.
Lo arreglé así
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
Si ya tiene la base de datos, use lo siguiente para importar el dump
o el archivo sql
mysql -u username -p database_name < file.sql
si no necesita crear la base de datos relevante (vacía) en MySQL, para eso primero inicie sesión en la consola de MySQL
ejecutando el siguiente comando en terminal o en cmd
mysql -u userName -p;
y cuando se le solicite proporcionar la contraseña.
Luego crea una base de datos y úsala.
mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;
Luego importe el archivo sql
o el archivo de dump
a la base de datos desde
mysql> source pathToYourSQLFile;
Nota: si su terminal no se encuentra en la ubicación donde existe el archivo de dump
o sql
, use la ruta relativa arriba.
Tratar:
mysql -u username -p database_name < file.sql
Compruebe las opciones de MySQL .
Nota-1: es mejor usar la ruta completa del archivo SQL file.sql
.
Nota-2: Utilice -R
y -R
--triggers
para mantener las rutinas y los desencadenantes de la base de datos original. No se copian por defecto.
Un uso común de mysqldump es para hacer una copia de seguridad de una base de datos completa:
shell> mysqldump db_name > backup-file.sql
Puede volver a cargar el archivo de volcado en el servidor de esta manera:
UNIX
shell> mysql db_name < backup-file.sql
Lo mismo en el símbolo del sistema de Windows :
mysql -p -u [user] [database] < backup-file.sql
Potencia Shell
C:/> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
Línea de comandos de MySQL
mysql> use db_name;
mysql> source backup-file.sql;
Una solución que funcionó para mí es a continuación:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
Ve al directorio donde tienes MySQL.
c:/mysql/bin/> mysql -u username -p password database_name <
filename.sql
También para volcar todas las bases de datos, use la opción -all-databases
, y ya no se debe especificar el nombre de ninguna base de datos.
mysqldump -u username -ppassword –all-databases > dump.sql
O puede usar algunos clientes GUI como SQLyog para hacer esto.
Ve al directorio donde tienes el ejecutable MySQL. -u
para el nombre de usuario y -p
para solicitar la contraseña:
C:/xampp/mysql/bin>mysql -u username -ppassword databasename < C:/file.sql
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
mysql -u root -p password -D database_name << import.sql
Utilice la ayuda de mysql para obtener más información mysql --help
Creo que estas serán opciones útiles en nuestro contexto.
[~]$ mysql --help
mysql Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--bind-address=name IP address to bind to.
-D, --database=name Database to use.
--delimiter=name Delimiter to be used.
--default-character-set=name Set the default character set.
-f, --force Continue even if we get an SQL error.
-p, --password[=name] Password to use when connecting to server.
-h, --host=name Connect to host.
-P, --port=# Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
--protocol=name The protocol to use for connection (tcp, socket, pipe,
-s, --silent Be more silent. Print results with a tab as separator, each row on new line.
-v, --verbose Write more. (-v -v -v gives the table output format).
-V, --version Output version information and exit.
-w, --wait Wait and retry if connection is down.
lo que es divertido, si importamos una base de datos grande y no tenemos una barra de progreso. Use Pipe Viewer y vea la transferencia de datos a través de la tubería
Para Mac, brew install pv
Para Debian / Ubuntu, apt-get install pv
. Otros, consulte http://www.ivarch.com/programs/pv.shtml
pv import.sql | mysql -u root -p password -D database_name
1.45GiB 1:50:07 [339.0KiB/s] [=============> ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s] [=============> ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s] [=============> ] 14% ETA 11:05:36