In oracle database, command "host" can be used to run bash command from database command window. Is there a equivalent command as "host" in mySql?
问题:
回答1:
You can use the system
command.
system command, \! command
Executes the given command using your default command interpreter.
The system command works only in Unix.
Example:
system ls -l
回答2:
I'm running version 5.0.95-log on Linux. Prefacing the command either by "system" or by "!" works for the "pwd" and the "ls -l" commands. If I try to change directory using, e.g.
mysql> system cd /home/mydir
the command seems to be accepted. But this apparently does nothing, as following "pwd" and "ls -l" commands indicate that I am still in the same directory. So it appears that there is a stub of limited functionality built in for this, but that we do not actually have full access to the system shell.
回答3:
It's actually possible to execute shell commands on the server that mysqld is running though a client connection (rather than executing commands on the client machine locally) by using MySQL Proxy (scroll down to the "Shell commands from MySQL client" section ).
回答4:
As an additional tweak, on most "'nix" systems you can actually do something like this:
mysql> system bash
And have the entire terminal at your disposal. This is particularly effective if you're doing code work in the terminal that interfaces with MySQL; from the shell, typing "exit" will take you back into the MySQL monitor/client, so you can go back and forth quite easily.
Obviously, other shells ("mysql> system tcsh") would work as well.
回答5:
In a linux machine you should be able to use the following example
- ! clear - to clear the screen
- ! ls - to list files in the current working directory
- Basically you should be able to run any command or script using that syntax
NB: Add a back slash before !