2009-05-30 17 views

risposta

12

È possibile utilizzare il comando system.

comando di sistema, \! comando

Esegue il comando dato utilizzando l'interprete di comandi predefinito .

Il comando di sistema funziona solo in Unix.

Esempio:

system ls -l 
+1

Naturalmente questo funziona solo nel client della riga di comando MySQL. Non dal server del database stesso. –

+0

scusa se non funziona in Windows –

1

In realtà è possibile eseguire comandi shell sul server che mysqld è in esecuzione anche se una connessione client (invece di eseguire comandi sulla macchina client locale) utilizzando MySQL Proxy (scorrere verso il basso alla sezione "Comandi della shell dal client MySQL").

-1

In una macchina Linux si dovrebbe essere in grado di utilizzare il seguente esempio

  1. ! clear - per cancellare lo schermo
  2. ! ls - per elencare i file nella directory di lavoro corrente
  3. In sostanza si dovrebbe essere in grado di eseguire qualsiasi comando o script utilizzando la sintassi che

NB: Aggiungere una barra rovesciata prima!

+0

Questo non risponde alla domanda, che riguarda come richiamare uno script SQL dal prompt di MySQL, non dalla riga di comando di Linux. – codeforester

2

Sto eseguendo la versione 5.0.95-log su Linux. Prefazione del comando tramite "sistema" o "!" funziona per i comandi "pwd" e "ls -l". Se provo a cambiare directory usando, ad es.

mysql> sistema cd/home/mydir

il comando sembra essere accettato. Ma questo a quanto pare non fa nulla, poiché i comandi "pwd" e "ls -l" indicano che sono ancora nella stessa directory. Quindi sembra che ci sia uno stub di funzionalità limitato integrato per questo, ma che in realtà non abbiamo pieno accesso alla shell di sistema.

+0

Penso che questo non sia necessariamente uno stub, ma c'è una shell separata su ogni istanza di comando 'system'. quindi se potessi incatenarli in qualche modo ... –

0

Come Tweak aggiuntivo, sulla maggior parte dei sistemi "'nix" in realtà si può fare qualcosa di simile:

mysql> system bash 

E avere l'intero terminale a vostra disposizione. Questo è particolarmente efficace se si sta facendo il lavoro di codice nel terminale che si interfaccia con MySQL; dalla shell, digitando "exit" tornerai nel monitor/client MySQL, così puoi andare avanti e indietro abbastanza facilmente.

Ovviamente, altre shell ("mysql> system tcsh") funzionerebbero altrettanto bene.

Problemi correlati