2012-01-20 15 views

Respuesta

97

Usted tiene un buen montón de opciones:

  • utilizar el cliente de línea de comandos de MySQL: mysql -h hostname -u user database < path/to/test.sql
  • Instalar la interfaz gráfica de usuario de MySQL herramientas y abra su archivo SQL, luego ejecútelo
  • Use phpmysql si la base de datos está disponible a través de su servidor web
+0

¿Qué pasa con contraseña (opción -p) del usuario? –

+0

@AmirKatz Aunque la contraseña se puede proporcionar con la opción '-p', esto no se recomienda: otros usuarios en el mismo host pueden usar herramientas del sistema como' ps' para leerlo en este caso. –

278

Si está en la línea de comandos de MySQL mysql> tiene que declarar el archivo SQL como source.

mysql> source \home\user\Desktop\test.sql; 
+27

Para mysql 5.6.10 en Mac, no se necesitan comillas simples para la ruta del archivo. – RNA

+6

@RNA gracias ... solo cita causa problemas más bien ... –

+0

buscado por horas !! ¡Gracias! y sí, sin comillas, funcionó para mí – Arrie

-2

Puede utilizar SQLyog 's Ejecutar secuencia de comandos SQL para ejecutar el archivo .sql. Seleccione el archivo y presione Ejecutar. :-) Tienes 30 días de prueba gratis.

Y, recibe el error porque tiene comillas alrededor del nombre del archivo.

El archivo debe estar ubicado en el host del cliente donde está ejecutando mysql. El nombre de archivo debe ser una ruta de acceso absoluta que enumere el nombre completo del archivo o una ruta de acceso especificada en relación con el directorio en el que invocó a mysql. Por ejemplo, si inició mysql en una máquina con Windows en el directorio C: \ mysql y su archivo de script es my_commands.sql en el directorio C: \ scripts, ambos de los siguientes comandos SOURCE le dicen a mysql que ejecute las sentencias SQL en el archivo :

mysql> SOURCE C: \ scripts \ my_commands.sql;

mysql> SOURCE .. \ scripts \ my_commands.sql;

La otra forma de ejecutar un archivo de script es nombrándolo en la línea de comando mysql. Invocar MySQL y utilizar el operador de redirección de entrada < para especificar el archivo desde el que leer la entrada consulta:

shell> mysql nombre_bd < archivo_entrada

88

puede ejecutar sentencias de MySQL que han sido escritos en un archivo de texto mediante el siguiente comando:

mysql -u yourusername -p yourpassword yourdatabase < text_file 

si yourdatabase no se ha creado aún, entre en su primera mysql usando:

mysql -u yourusername -p yourpassword yourdatabase 

a continuación:

mysql>CREATE DATABASE a_new_database_name 

a continuación:

mysql -u yourusername -p yourpassword a_new_database_name < text_file 

que debe hacerlo!

Más información aquí: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html

+5

en Windows: para la contraseña tuve que usar comillas y SIN espacio para hacerlo funcionar (la contraseña en sí misma no contenía espacios ni caracteres especiales): 'mysql -u nombre de usuario -p" contraseña "' –

+0

Si usa No quiero que su contraseña esté en el indicador Creo que el método que se describe aquí funcionará: http://stackoverflow.com/questions/9293042/mysqldump-without-password-prompt – alex9311

5

Muy probablemente, sólo tiene que cambiar la barra/blackslash: de

\home\sivakumar\Desktop\test.sql 

a

/home/sivakumar/Desktop/test.sql 

lo tanto, el comando sería:

source /home/sivakumar/Desktop/test.sql 
5

usar el siguiente comando de MySQL pronta -

source \\home\\user\\Desktop\\test.sql; 

Uso ninguna cotización. Incluso si la ruta contiene espacio ('') use sin cotización en absoluto.

2

Desde mysql -u yourusername -p yourpassword yourdatabase < text_file no funcionó en un servidor remoto (EC2 de Amazon) ...

Asegúrese de que la base de datos se crea en primer lugar.

continuación:

mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql 
12

Mi opción favorita para hacer eso será:

mysql --user="username" --database="databasename" --password="yourpassword" < "filepath" 

que usarlo de esta manera porque cuando la cadena con "" que evita camino equivocado y errores con espacios y - y probablemente más problemas con los caracteres que no encontré.

+10

No recomendaría pasar la contraseña al línea de comando, ya que se guardará en ~/.bash_history, y otros programas pueden acceder a ella a través de/proc /. – elcuco

9
mysql> source C:\Users\admin\Desktop\fn_Split.sql 

No especifique comillas simples.

Si el comando anterior no funciona, copie el archivo en c: unidad y vuelva a intentarlo. como se muestra a continuación,

mysql> source C:\fn_Split.sql 
36

Todas las respuestas más son buenos. Pero por si acaso alguien quiere ejecutar la consulta de un archivo de texto en un servidor remoto Y guardar los resultados en un archivo (en lugar de mostrar en la consola), se puede hacer esto:

mysql -u yourusername -p yourpassword yourdatabase <query_file> results_file 

Espero que esto ayude a alguien .

+1

¡Gracias! ¡Esto es exactamente lo que estaba buscando! – mason81

+0

¡Feliz de ayudar! – Bhushan

+6

Creo que no debería haber espacio entre '-p' y la contraseña – webNeat

2

Para referencia futura, he encontrado que esto funcione vs los métodos antes mencionados, bajo Windows en la consola msql:

MySQL >>source c://path_to_file//path_to_file//file_name.sql;

Si la unidad de raíz no se llama "c" entonces simplemente intercambie con lo que se llama su unidad. Primero intente las barras invertidas, si no funcionan, intente con la barra diagonal. Si tampoco funcionan, asegúrese de tener su ruta de archivo completa, la extensión .sql en el nombre del archivo y si su versión insiste en puntos y comas, asegúrese de que esté allí y vuelva a intentarlo.

0

Tuve este error e intenté todos los consejos que pude obtener en vano.

Finalmente, el problema era que mi carpeta tenía un espacio en el nombre de la carpeta que aparecía como una barra diagonal en la ruta de la carpeta, una vez que lo encontré y lo quité, funcionó bien.

-1

vine aquí en busca de esta respuesta también, y esto es lo que he encontrado que funciona mejor para mí: Tenga en cuenta que estoy usando Ubuntu 16.XX

  1. acceso de MySQL usando mysql -u root - p en línea de comandos, donde - u
  2. guardar el archivo .sql, mi es en el escritorio/ICT458
  3. en el indicador de MySQL, introduzca mysql>source /home/user_name/Desktop/ICT458/file_name.sql

Espero que esto ayude.

11

Dar la ruta del archivo sql como:

source c:/dump/SQL/file_name.sql; 

See In The Image:

4
Nunca

es una buena práctica para pasar el argumento de la contraseña directamente desde la línea de comandos, se guarda en el archivo ~/.bash_history y puede ser accesible desde otras aplicaciones.

Use este lugar:

mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p 
Enter password: 
2
mysql -uusername -ppassword database-name < file.sql 
Cuestiones relacionadas