DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) mysql Commands

Info Catalog (mysql.info.gz) mysql (mysql.info.gz) mysql (mysql.info.gz) Batch Commands
 
 8.3.1 `mysql' Commands
 ----------------------
 
 `mysql' sends SQL statements that you issue to the server to be
 executed.  There is also a set of commands that `mysql' itself
 interprets.  For a list of these commands, type `help' or `\h' at the
 `mysql>' prompt:
 
      mysql> help
 
      MySQL commands:
      ?         (\h)    Synonym for `help'.
      clear     (\c)    Clear command.
      connect   (\r)    Reconnect to the server.
                        Optional arguments are db and host.
      delimiter (\d)    Set query delimiter.
      edit      (\e)    Edit command with $EDITOR.
      ego       (\G)    Send command to mysql server,
                        display result vertically.
      exit      (\q)    Exit mysql. Same as quit.
      go        (\g)    Send command to mysql server.
      help      (\h)    Display this help.
      nopager   (\n)    Disable pager, print to stdout.
      notee     (\t)    Don't write into outfile.
      pager     (\P)    Set PAGER [to_pager].
                        Print the query results via PAGER.
      print     (\p)    Print current command.
      prompt    (\R)    Change your mysql prompt.
      quit      (\q)    Quit mysql.
      rehash    (\#)    Rebuild completion hash.
      source    (\.)    Execute an SQL script file.
                        Takes a file name as an argument.
      status    (\s)    Get status information from the server.
      system    (\!)    Execute a system shell command.
      tee       (\T)    Set outfile [to_outfile].
                        Append everything into given outfile.
      use       (\u)    Use another database.
                        Takes database name as argument.
 
 Each command has both a long and short form.  The long form is not case
 sensitive; the short form is.  The long form can be followed by an
 optional semicolon terminator, but the short form should not.
 
 The `edit', `nopager', `pager', and `system' commands work only in Unix.
 
 The `status' command provides some information about the connection and
 the server you are using. If you are running in `--safe-updates' mode,
 `status' also prints the values for the `mysql' variables that affect
 your queries.
 
 To log queries and their output, use the `tee' command.  All the data
 displayed on the screen will be appended into a given file. This can be
 very useful for debugging purposes also.  You can enable this feature
 on the command line with the `--tee' option, or interactively with the
 `tee' command.  The `tee' file can be disabled interactively with the
 `notee' command. Executing `tee' again re-enables logging.  Without a
 parameter, the previous file will be used. Note that `tee' flushes
 query results to the file after each statement, just before `mysql'
 prints its next prompt.
 
 Browsing or searching query results in interactive mode by using Unix
 programs such as `less', `more', or any other similar program is
 possible with the `--pager' option. If you specify no value for the
 option, `mysql' checks the value of the `PAGER' environment variable
 and sets the pager to that.  Output paging can be enabled interactively
 with the `pager' command and disabled with `nopager'.  The command
 takes an optional argument; if given, the paging program is set to
 that. With no argument, the pager is set to the pager that was set on
 the command line, or `stdout' if no pager was specified.
 
 Output paging works only in Unix because it uses the `popen()'
 function, which doesn't exist on Windows. For Windows, the `tee' option
 can be used instead to save query output, although this is not as
 convenient as `pager' for browsing output in some situations.
 
 A few tips about the `pager' command:
 
    * You can use it to write to a file and the results will go only to
      the file:
 
           mysql> pager cat > /tmp/log.txt
 
      You can also pass any options for the program that you want to use
      as your pager:
 
           mysql> pager less -n -i -S
 
    * In the preceding example, note the `-S' option. You may find it
      very useful for browsing wide query results.  Sometimes a very
      wide result set is difficult to read on the screen.  The `-S'
      option to `less' can make the result set much more readable
      because you can scroll it horizontally using the left-arrow and
      right-arrow keys.  You can also use `-S' interactively within
      `less' to switch the horizontal-browse mode on and off.  For more
      information, read the `less' manual page:
 
           shell> man less
 
    * You can specify very complex pager commands for handling query
      output:
 
           mysql> pager cat | tee /dr1/tmp/res.txt \
                     | tee /dr2/tmp/res2.txt | less -n -i -S
 
      In this example, the command would send query results to two files
      in two different directories on two different filesystems mounted
      on `/dr1' and `/dr2', yet still display the results onscreen via
      `less'.
 
 
 You can also combine the `tee' and `pager' functions. Have a `tee' file
 enabled and `pager' set to `less', and you will be able to browse the
 results using the `less' program and still have everything appended
 into a file the same time. The difference between the Unix `tee' used
 with the `pager' command and the `mysql' built-in `tee' command is that
 the built-in `tee' works even if you don't have the Unix `tee'
 available. The built-in `tee' also logs everything that is printed on
 the screen, whereas the Unix `tee' used with `pager' doesn't log quite
 that much. Additionally, `tee' file logging can be turned on and off
 interactively from within `mysql'. This is useful when you want to log
 some queries to a file, but not others.
 
 From MySQL 4.0.2 on, the default `mysql>' prompt can be reconfigured.
 The string for defining the prompt can contain the following special
 sequences:
 
 *Option*    *Description*
 `\v'        The server version
 `\d'        The current database
 `\h'        The server host
 `\p'        The current TCP/IP host
 `\u'        Your username
 `\U'        Your full `USER_NAME@HOST_NAME' account name
 `\\'        A literal `\' backslash character
 `\n'        A newline character
 `\t'        A tab character
 `\ '        A space (a space follows the backslash)
 `\_'        A space
 `\R'        The current time, in 24-hour military time (0-23)
 `\r'        The current time, standard 12-hour time (1-12)
 `\m'        Minutes of the current time
 `\y'        The current year, two digits
 `\Y'        The current year, four digits
 `\D'        The full current date
 `\s'        Seconds of the current time
 `\w'        The current day of the week in three-letter format
             (Mon, Tue, ...)
 `\P'        am/pm
 `\o'        The current month in numeric format
 `\O'        The current month in three-letter format (Jan, Feb,
             ...)
 `\c'        A counter that increments for each statement you issue
 `\S'        Semicolon
 `\''        Single quote
 `\"'        Double quote
 
 `\' followed by any other letter just becomes that letter.
 
 If you specify the `prompt' command with no argument, `mysql' resets
 the prompt to the default of `mysql>'.
 
 You can set the prompt in several ways:
 
    * Use an environment variable
 
      You can set the `MYSQL_PS1' environment variable to a prompt
      string.  For example:
 
           shell> export MYSQL_PS1="(\u@\h) [\d]> "
 
    * Use an option file
 
      You can set the `prompt' option in the `[mysql]' group of any MySQL
      option file, such as `/etc/my.cnf' or the `.my.cnf' file in your
      home directory.  For example:
 
           [mysql]
           prompt=(\\u@\\h) [\\d]>\\_
 
      In this example, note that the backslashes are doubled.  If you
      set the prompt using the `prompt' option in an option file, it is
      advisable to double the backslashes when using the special prompt
      options.  There is some overlap in the set of allowable prompt
      options and the set of special escape sequences that are
      recognized in option files.  (These sequences are listed in 
      Option files.)  The overlap may cause you problems if you use
      single backslashes.  For example, `\s' will be interpreted as a
      space rather than as the current seconds value. The following
      example shows how to define a prompt within an option file to
      include the current time in `HH:MM:SS>' format:
 
           [mysql]
           prompt="\\r:\\m:\\s> "
 
    * Use a command-line option
 
      You can set the `--prompt' option on the command line to `mysql'.
      For example:
 
           shell> mysql --prompt="(\u@\h) [\d]> "
           (user@host) [database]>
 
    * Interactively
 
      You can change your prompt interactively by using the `prompt' (or
      `\R') command.  For example:
 
           mysql> prompt (\u@\h) [\d]>\_
           PROMPT set to '(\u@\h) [\d]>\_'
           (USER@HOST) [DATABASE]>
           (USER@HOST) [DATABASE]> prompt
           Returning to default PROMPT of mysql>
           mysql>
 
 
Info Catalog (mysql.info.gz) mysql (mysql.info.gz) mysql (mysql.info.gz) Batch Commands
automatically generated byinfo2html