Quiero ejecutar un archivo de texto que contenga consultas SQL, en MySQL.
Traté de correr source /Desktop/test.sql
y recibí el error:
mysql>. \ home \ sivakumar \ Desktop \ test.sql ERROR: Error al abrir el archivo '\ home \ sivakumar \ Desktop \ test.sql', error: 2
¿Alguna idea de lo que estoy haciendo mal?
mysql
command-line
usuario1160432
fuente
fuente
Respuestas:
Si está en la línea de comando de MySQL
mysql>
, debe declarar el archivo SQL comosource
.fuente
\
antes del espacio o envolver el nombre de archivo con"
.Tienes muchas opciones:
mysql -h hostname -u user database < path/to/test.sql
fuente
-p
opción, esto no se recomienda: otros usuarios en el mismo host pueden usar herramientas del sistema comops
leerla en este caso.-p
sin argumento solicita que se ingrese la contraseña en la línea siguientepuede ejecutar declaraciones mysql que se hayan escrito en un archivo de texto con el siguiente comando:
si su base de datos aún no se ha creado, primero inicie sesión en su mysql usando:
entonces:
entonces:
¡Deberias hacer eso!
Más información aquí: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
fuente
mysql -u yourusername -p"yourpassword"
Mi opción favorita para hacer eso será:
Lo uso de esta manera porque cuando lo encadena con "" evita el camino equivocado y los errores con espacios y, y probablemente más problemas con caracteres con los que no me encontré.
Con el comentario de @elcuco, sugiero usar este comando con [espacio] antes, así que le dice a bash que ignore guardarlo en el historial, esto funcionará de manera predeterminada en la mayoría de bash.
en caso de que aún guarde su comando en el historial, consulte las siguientes soluciones:
Ejecute el comando sin mantenerlo en el historial
seguridad adicional editar
En caso de que quiera estar más seguro, puede usar el siguiente comando e ingresar la contraseña en la entrada de la línea de comando:
fuente
Todas las respuestas principales son buenas. Pero en caso de que alguien quiera ejecutar la consulta desde un archivo de texto en un servidor remoto Y guardar los resultados en un archivo (en lugar de mostrarlos en la consola), puede hacer esto:
Espero que esto ayude a alguien.
fuente
-p
y la contraseñaSELECT ... INTO OUTFILE /path/to/file.csv
es una forma más eficiente. Ver opciones y sintaxis aquí: dev.mysql.com/doc/refman/5.7/en/select-into.htmlIndique la ruta del archivo .sql como:
fuente
Vine aquí buscando esta respuesta también, y esto es lo que encontré que funciona mejor para mí: Tenga en cuenta que estoy usando Ubuntu 16.xx
mysql -u <your_user> - p
source file_name.sql
Espero que esto ayude.
fuente
mysql -u<user> -p -e 'source filename.sql'
No especifique comillas simples.
Si el comando anterior no funciona, copie el archivo en la unidad c: e intente nuevamente. Como se muestra abajo,
fuente
Nunca es una buena práctica pasar el argumento de la contraseña directamente desde la línea de comandos, se guarda en el
~/.bash_history
archivo y se puede acceder desde otras aplicaciones.Use esto en su lugar:
fuente
fuente
Muy probablemente, solo necesita cambiar la barra diagonal / barra negra: desde
a
Entonces el comando sería:
fuente
use lo siguiente desde el símbolo del sistema mysql :
No use citas. Incluso si la ruta contiene espacio (''), no utilice comillas .
fuente
en lugar de redireccionar haría lo siguiente
Esto ejecutará el archivo path-to-sql-file
fuente
Tantas maneras de hacerlo.
Si obtiene errores desde la línea de comando, asegúrese de haber ejecutado previamente
Esto debe ejecutarse desde el directorio mysqld.exe, de ahí el CD.
Espero que esto sea útil y no solo redundante.
fuente
Como
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 cree primero.
Entonces:
fuente
Para referencia futura, he encontrado que esto funciona en comparación con los métodos mencionados anteriormente, en Windows en su consola msql:
mysql >>
source c://path_to_file//path_to_file//file_name.sql;
Si su unidad raíz no se llama "c", simplemente intercambie con lo que se llama su unidad. Primero intente las barras invertidas, si no funcionan, pruebe 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 punto y coma, asegúrese de que esté allí e intente nuevamente.
fuente
Tuve este error y probé 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 la encontré y la eliminé, funcionó bien.
fuente