2009-05-30 23 views

Respuesta

12

Puede usar el comando system.

sistema de comando, \! comando

Ejecuta el comando dado usando su intérprete de comandos predeterminado .

El comando del sistema solo funciona en Unix.

Ejemplo:

system ls -l 
+1

Por supuesto, esto solo funciona en el cliente de línea de comandos MySQL. No desde el servidor de la base de datos en sí. –

+0

siento que no funciona en Windows –

1

De hecho, es posible ejecutar comandos de shell en el servidor que mysqld se está ejecutando a través de una conexión de cliente (en lugar de los comandos que se ejecutan en la máquina cliente local) mediante el uso de MySQL Proxy (desplazarse hacia abajo a la sección "Comandos de shell desde el cliente MySQL").

-1

En una máquina Linux debe ser capaz de utilizar el ejemplo siguiente

  1. ! borrar - para borrar la pantalla
  2. ! ls - a la lista de archivos en el directorio de trabajo actual
  3. Básicamente, usted debería ser capaz de ejecutar cualquier comando o secuencia de comandos utilizando la sintaxis

NB: Añadir un barra invertida antes!

+0

Esto no responde a la pregunta, que trata sobre cómo invocar un script SQL desde el indicador de MySQL, no desde la línea de comandos de Linux. – codeforester

2

Estoy ejecutando la versión 5.0.95-log en Linux. Prefacing el comando por "sistema" o por "!" funciona para los comandos "pwd" y "ls -l". Si trato de cambiar el directorio usando, p.

mysql> Sistema cd/home/mydir

el comando parece ser aceptada. Pero aparentemente esto no hace nada, ya que los siguientes comandos "pwd" y "ls -l" indican que todavía estoy en el mismo directorio. Por lo tanto, parece que hay un trozo de funcionalidad limitada incorporada para esto, pero que en realidad no tenemos acceso total al shell del sistema.

+0

Creo que esto no es necesariamente un stub, pero hay un shell separado en cada instancia del comando 'system'. entonces si pudieras encadenarlos de alguna manera ... –

0

Como un truco adicional, en la mayoría de los sistemas "'nix" en realidad se puede hacer algo como esto:

mysql> system bash 

Y tienen todo el terminal a su disposición. Esto es particularmente efectivo si está trabajando con código en la terminal que interactúa con MySQL; desde el intérprete de comandos, teclear "salir" lo llevará de vuelta al monitor/cliente MySQL, por lo que puede ir y venir con bastante facilidad.

Obviamente, otras shells ("mysql> system tcsh") funcionarían también.

Cuestiones relacionadas