diff options
Diffstat (limited to 'man/mysql.1')
-rw-r--r-- | man/mysql.1 | 3112 |
1 files changed, 3112 insertions, 0 deletions
diff --git a/man/mysql.1 b/man/mysql.1 new file mode 100644 index 00000000..51958139 --- /dev/null +++ b/man/mysql.1 @@ -0,0 +1,3112 @@ +'\" t +.\" +.TH "\FBMYSQL\FR" "1" "27 June 2019" "MariaDB 10\&.5" "MariaDB Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql +.\" command-line tool +.\" tools: command-line +.\" scripts: SQL +.\" SQL scripts +.\" batch SQL files +.SH "NAME" +mysql \- the MariaDB command\-line tool +.SH "SYNOPSIS" +.HP \w'\fBmysql\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u +\fBmysql [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql\fR +is a simple SQL shell (with GNU +readline +capabilities)\&. It supports interactive and non\-interactive use\&. When used interactively, query results are presented in an ASCII\-table format\&. When used non\-interactively (for example, as a filter), the result is presented in tab\-separated format\&. The output format can be changed using command options\&. +.PP +If you have problems due to insufficient memory for large result sets, use the +\fB\-\-quick\fR +option\&. This forces +\fBmysql\fR +to retrieve results from the server a row at a time rather than retrieving the entire result set and buffering it in memory before displaying it\&. This is done by returning the result set using the +mysql_use_result() +C API function in the client/server library rather than +mysql_store_result()\&. +.PP +Using +\fBmysql\fR +is very easy\&. Invoke it from the prompt of your command interpreter as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Or: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-user=\fR\fB\fIuser_name\fR\fR\fB \-\-password=\fR\fB\fIyour_password\fR\fR\fB \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Then type an SQL statement, end it with +\(lq;\(rq, +\eg, or +\eG +and press Enter\&. +.PP +Typing Control\-C causes +\fBmysql\fR +to attempt to kill the current statement\&. If this cannot be done, or Control\-C is typed again before the statement is killed, +\fBmysql\fR +exits\&. +.PP +You can execute SQL statements in a script file (batch file) like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR\fB < \fR\fB\fIscript\&.sql\fR\fR\fB > \fR\fB\fIoutput\&.tab\fR\fR +.fi +.if n \{\ +.RE +.\} +.SH "MYSQL OPTIONS" +.\" mysql command options +.\" command options: mysql +.\" options: command-line: mysql +.\" startup parameters: mysql +.PP +\fBmysql\fR +supports the following options, which can be specified on the command line or in the +[mysql], [client], [client-server] or [client-mariadb] +option file groups\&. +\fBmysql\fR +also supports the options for processing option files\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: help option +.\" help option: mysql +\fB\-\-help\fR, +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: abort-source-on-error option +.\" abort-source-on-error: mysql +\fB\-\-abort\-source\-on\-error\fR +.sp +Abort 'source filename' operations in case of errors\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: auto-rehash option +.\" auto-rehash option: mysql +\fB\-\-auto\-rehash\fR +.sp +Enable automatic rehashing\&. This option is on by default, which enables database, table, and column name completion\&. Use +\fB\-\-disable\-auto\-rehash\fR, \fB\-\-no\-auto\-rehash\fR, or \fB\-\-skip\-auto\-rehash\fR +to disable rehashing\&. That causes +\fBmysql\fR +to start faster, but you must issue the +rehash +command if you want to use name completion\&. +.sp +To complete a name, enter the first part and press Tab\&. If the name is unambiguous, +\fBmysql\fR +completes it\&. Otherwise, you can press Tab again to see the possible names that begin with what you have typed so far\&. Completion does not occur if there is no default database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: auto-vertical-output option +.\" auto-vertical-output option: mysql +\fB\-\-auto\-vertical\-output\fR +.sp +Automatically switch to vertical output mode if the result is wider than the terminal width\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: batch option +.\" batch option: mysql +\fB\-\-batch\fR, +\fB\-B\fR +.sp +Print results using tab as the column separator, with each row on a new line\&. With this option, +\fBmysql\fR +does not use the history file\&. +.sp +Batch mode results in nontabular output format and escaping of special characters\&. Escaping may be disabled by using raw mode; see the description for the +\fB\-\-raw\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: binary-mode option +.\" binary-mode option: mysql +\fB\-\-binary\-mode\fR +.sp +By default, ASCII '\e0' is disallowed and '\er\en' is translated to '\en'\&. This switch turns off both features, and also turns off parsing of all client commands except \eC and DELIMITER, in non-interactive mode (for input piped to mysql or loaded using the 'source' command)\&. This is necessary when processing output from mysqlbinlog that may contain blobs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: character-sets-dir option +.\" character-sets-dir option: mysql +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: column-names option +.\" column-names option: mysql +\fB\-\-column\-names\fR +.sp +Write column names in results\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: column-type-info option +.\" column-type-info option: mysql +\fB\-\-column\-type\-info\fR, +\fB\-m\fR +.sp +Display result set metadata\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: comments option +.\" comments option: mysql +\fB\-\-comments\fR, +\fB\-c\fR +.sp +Whether to preserve comments in statements sent to the server\&. The default is \-\-skip\-comments (discard comments), enable with \-\-comments (preserve comments)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: compress option +.\" compress option: mysql +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: connect-timeout option +.\" connect-timeout option: mysql +\fB\-\-connect\-timeout=\fR\fB\fIseconds\fR\fR +.sp +Set the number of seconds before connection timeout\&. (Default value is 0\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: database option +.\" database option: mysql +\fB\-\-database=\fR\fB\fIdb_name\fR\fR, +\fB\-D \fR\fB\fIdb_name\fR\fR +.sp +The database to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug option +.\" debug option: mysql +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/mysql\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug-check option +.\" debug-check option: mysql +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug-info option +.\" debug-info option: mysql +\fB\-\-debug\-info\fR, +\fB\-T\fR +.sp +Prints debugging information and memory and CPU usage statistics when the program exits\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: default-auth option +.\" default-auth option: mysql +\fB\-\-default\-auth=\fR\fB\fIname\fR +.sp +Default authentication client-side plugin to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: default-character-set option +.\" default-character-set option: mysql +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set for the client and connection\&. +.sp +A common issue that can occur when the operating system uses +utf8 +or another multi\-byte character set is that output from the +\fBmysql\fR +client is formatted incorrectly, due to the fact that the MariaDB client uses the +latin1 +character set by default\&. You can usually fix such issues by using this option to force the client to use the system character set instead\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: defaults-extra-file option +.\" defaults-extra-file option: mysql +\fB\-\-defaults-extra-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been read\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: defaults-file option +.\" defaults-file option: mysql +\fB\-\-defaults-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: defaults-group-suffix option +.\" defaults-group-suffix option: mysql +\fB\-\-defaults\-group\-suffix=\fR\fB\fIsuffix\fR\fR +.sp +In addition to the groups named on the command line, read groups that have the given suffix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: delimiter option +.\" delimiter option: mysql +\fB\-\-delimiter=\fR\fB\fIstr\fR\fR +.sp +Set the statement delimiter\&. The default is the semicolon character (\(lq;\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: disable named commands +.\" disable named command: mysql +\fB\-\-disable\-named\-commands\fR +.sp +Disable named commands\&. Use the +\e* +form only, or use named commands only at the beginning of a line ending with a semicolon (\(lq;\(rq)\&. +\fBmysql\fR +starts with this option +\fIenabled\fR +by default\&. However, even with this option, long\-format commands still work from the first line\&. See +the section called \(lqMYSQL COMMANDS\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: execute option +.\" execute option: mysql +\fB\-\-execute=\fR\fB\fIstatement\fR\fR, +\fB\-e \fR\fB\fIstatement\fR\fR +.sp +Execute the statement and quit\&. Disables \fB\-\-force\fR and history file\&. The default output format is like that produced with +\fB\-\-batch\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: force option +.\" force option: mysql +\fB\-\-force\fR, +\fB\-f\fR +.sp +Continue even if an SQL error occurs\&. Sets \fB\-\-abort\-source\-on-error\fR to 0\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: host option +.\" host option: mysql +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MariaDB server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: html option +.\" html option: mysql +\fB\-\-html\fR, +\fB\-H\fR +.sp +Produce HTML output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: ignore-spaces option +.\" ignore-spaces option: mysql +\fB\-\-ignore\-spaces\fR, +\fB\-i\fR +.sp +Ignore spaces after function names\&. Allows one to have spaces (including tab characters and new line characters) between function name and '('\&. The drawback is that this causes built in functions to become reserved words\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: init-command option +.\" init-command option: mysql +\fB\-\-init\-command=\fR\fB\fIstr\fR\fR\fR +.sp +SQL Command to execute when connecting to the MariaDB server\&. Will automatically be re-executed when reconnecting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: line-numbers option +.\" line-numbers option: mysql +\fB\-\-line\-numbers\fR +.sp +Write line numbers for errors\&. Disable this with +\fB\-\-skip\-line\-numbers\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: local-infile option +.\" local-infile option: mysql +\fB\-\-local\-infile[={0|1}]\fR +.sp +Enable or disable +LOCAL +capability for +LOAD DATA INFILE\&. With no value, the option enables +LOCAL\&. The option may be given as +\fB\-\-local\-infile=0\fR +or +\fB\-\-local\-infile=1\fR +to explicitly disable or enable +LOCAL\&. Enabling +LOCAL +has no effect if the server does not also support it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: max-allowed-packet option +.\" max-allowed-packet option: mysql +\fB\-\-max\-allowed\-packet=\fR\fB\fInum\fR\fR +.sp +Set the maximum packet length to send to or receive from the server\&. (Default value is 16MB, largest 1GB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: max-join-size option +.\" max-join-size option: mysql +\fB\-\-max\-join\-size=\fR\fB\fInum\fR\fR +.sp +Set the automatic limit for rows in a join when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: named-commands option +.\" named-commands option: mysql +\fB\-\-named\-commands\fR, +\fB\-G\fR +.sp +Enable named +\fBmysql\fR +commands\&. Long\-format commands are allowed, not just short\-format commands\&. For example, +quit +and +\eq +both are recognized\&. Use +\fB\-\-skip\-named\-commands\fR +to disable named commands\&. See +the section called \(lqMYSQL COMMANDS\(rq\&. Disabled by default\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\h'-04'\(bu\h'+03'\c +.\} +.\" mysql: net-buffer-length option +.\" net-buffer-length option: mysql +\fB\-\-net\-buffer\-length=\fR\fB\fIsize\fR\fR +.sp +Set the buffer size for TCP/IP and socket communication\&. (Default value is 16KB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-auto-rehash option +.\" no-auto-rehash option: mysql +\fB\-\-no\-auto\-rehash\fR, +\fB\-A\fR +.sp +This has the same effect as +\fB\-\-skip\-auto\-rehash\fR\&. See the description for +\fB\-\-auto\-rehash\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-beep option +.\" no-beep option: mysql +\fB\-\-no\-beep\fR, +\fB\-b\fR +.sp +Do not beep when errors occur\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-defaults option +.\" no-defaults option: mysql +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: one-database option +.\" one-database option: mysql +\fB\-\-one\-database\fR, +\fB\-o\fR +.sp +Ignore statements except those those that occur while the default database is the one named on the command line\&. This filtering is limited, and based only on USE statements\&. This is useful for skipping updates to other databases in the binary log\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pager option +.\" pager option: mysql +\fB\-\-pager[=\fR\fB\fIcommand\fR\fR\fB]\fR +.sp +Use the given command for paging query output\&. If the command is omitted, the default pager is the value of your +PAGER +environment variable\&. Valid pagers are +\fBless\fR, +\fBmore\fR, +\fBcat [> filename]\fR, and so forth\&. This option works only on Unix and only in interactive mode\&. To disable paging, use +\fB\-\-skip\-pager\fR\&. +the section called \(lqMYSQL COMMANDS\(rq, discusses output paging further\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: password option +.\" password option: mysql +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysql\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pipe option +.\" pipe option: mysql +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: plugin-dir option +.\" plugin-dir option: mysql +\fB\-\-plugin\-dir=\fIdir_name\fR +.sp +Directory for client-side plugins\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: port option +.\" port option: mysql +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: print-defaults option +.\" print-defaults option: mysql +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: progress-reports option +.\" progress-reports option: mysql +\fB\-\-progress\-reports\fR +.sp +Get progress reports for long running commands (such as ALTER TABLE)\&. (Defaults to on; use \fB\-\-skip\-progress\-reports\fR to disable\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: prompt option +.\" prompt option: mysql +\fB\-\-prompt=\fR\fB\fIformat_str\fR\fR +.sp +Set the prompt to the specified format\&. The special sequences that the prompt can contain are described in +the section called \(lqMYSQL COMMANDS\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: protocol option +.\" protocol option: mysql +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: quick option +.\" quick option: mysql +\fB\-\-quick\fR, +\fB\-q\fR +.sp +Do not cache each query result, print each row as it is received\&. This may slow down the server if the output is suspended\&. With this option, +\fBmysql\fR +does not use the history file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: raw option +.\" raw option: mysql +\fB\-\-raw\fR, +\fB\-r\fR +.sp +For tabular output, the +\(lqboxing\(rq +around columns enables one column value to be distinguished from another\&. For nontabular output (such as is produced in batch mode or when the +\fB\-\-batch\fR +or +\fB\-\-silent\fR +option is given), special characters are escaped in the output so they can be identified easily\&. Newline, tab, +NUL, and backslash are written as +\en, +\et, +\e0, and +\e\e\&. The +\fB\-\-raw\fR +option disables this character escaping\&. +.sp +The following example demonstrates tabular versus nontabular output and the use of raw mode to disable escaping: +.sp +.if n \{\ +.RS 4 +.\} +.nf +% \fBmysql\fR +mysql> SELECT CHAR(92); ++\-\-\-\-\-\-\-\-\-\-+ +| CHAR(92) | ++\-\-\-\-\-\-\-\-\-\-+ +| \e | ++\-\-\-\-\-\-\-\-\-\-+ +% \fBmysql \-s\fR +mysql> SELECT CHAR(92); +CHAR(92) +\e\e +% \fBmysql \-s \-r\fR +mysql> SELECT CHAR(92); +CHAR(92) +\e +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: reconnect option +.\" reconnect option: mysql +\fB\-\-reconnect\fR +.sp +If the connection to the server is lost, automatically try to reconnect\&. A single reconnect attempt is made each time the connection is lost\&. Enabled by default, to disable use +\fB\-\-skip\-reconnect\fR or \fB\-\-disable\-reconnect\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: safe-updates option +.\" safe-updates option: mysql +.\" mysql: i-am-a-dummy option +.\" i-am-a-dummy option: mysql +\fB\-\-safe\-updates\fR, +\fB\-\-i\-am\-a\-dummy\fR, +\fB\-U\fR +.sp +Allow only those +UPDATE +and +DELETE +statements that specify which rows to modify by using key values\&. If you have set this option in an option file, you can override it by using +\fB\-\-safe\-updates\fR +on the command line\&. See +the section called \(lqMYSQL TIPS\(rq, for more information about this option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: secure-auth option +.\" secure-auth option: mysql +\fB\-\-secure\-auth\fR +.sp +Do not send passwords to the server in old (pre\-4\&.1\&.1) format\&. This prevents connections except for servers that use the newer password format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: select-limit option +.\" select-limit option: mysql +\fB\-\-select\-limit=\fR\fB\fIlimit\fR\fR +.sp +Set automatic limit for SELECT when using \fB\-\-safe\-updates\fR\&. (Default value is 1,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: server-arg option +.\" server-arg option: mysql +\fB\-\-server\-arg=\fR\fB\fIname\fR\fR +.sp +Send \fB\fIname\fR\fR as a parameter to the embedded server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: show-warnings option +.\" show-warnings option: mysql +\fB\-\-show\-warnings\fR +.sp +Cause warnings to be shown after each statement if there are any\&. This option applies to interactive and batch mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: sigint-ignore option +.\" sigint-ignore option: mysql +\fB\-\-sigint\-ignore\fR +.sp +Ignore +SIGINT +signals (typically the result of typing Control\-C)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: silent option +.\" silent option: mysql +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Produce less output\&. This option can be given multiple times to produce less and less output\&. +.sp +This option results in nontabular output format and escaping of special characters\&. Escaping may be disabled by using raw mode; see the description for the +\fB\-\-raw\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-auto-rehash option +.\" skip-auto-rehash option: mysql +\fB\-\-skip\-auto\-rehash\fR +.sp +Disable automatic rehashing\&. Synonym for \fB\-\-disable\-auto\-rehash\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-column-names option +.\" skip-column-names option: mysql +\fB\-\-skip\-column\-names\fR, +\fB\-N\fR +.sp +Do not write column names in results\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-line-numbers option +.\" skip-line-numbers option: mysql +\fB\-\-skip\-line\-numbers\fR, +\fB\-L\fR +.sp +Do not write line numbers for errors\&. Useful when you want to compare result files that include error messages\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: socket option +.\" socket option: mysql +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL options +.\" SSL options: mysql +\fB\-\-ssl\fR +.sp +Enable SSL for connection (automatically enabled with other flags). Disable with +\fB\-\-skip-ssl\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL CA option +.\" SSL CA option: mysql +\fB\-\-ssl\-ca=\fIname\fR +.sp +CA file in PEM format (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL CA Path option +.\" SSL CA Path option: mysql +\fB\-\-ssl\-capath=\fIname\fR +.sp +CA directory (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Cert option +.\" SSL Cert option: mysql +\fB\-\-ssl\-cert=\fIname\fR +.sp +X509 cert in PEM format (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Cipher option +.\" SSL Cipher option: mysql +\fB\-\-ssl\-cipher=\fIname\fR +.sp +SSL cipher to use (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Key option +.\" SSL Key option: mysql +\fB\-\-ssl\-key=\fIname\fR +.sp +X509 key in PEM format (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Crl option +.\" SSL CRL option: mysql +\fB\-\-ssl\-crl=\fIname\fR +.sp +Certificate revocation list (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Crlpath option +.\" SSL Crlpath option: mysql +\fB\-\-ssl\-crlpath=\fIname\fR +.sp +Certificate revocation list path (check OpenSSL docs, implies +\fB\-\-ssl\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL Verify Server Cert option +.\" SSL Verify Server Cert option: mysql +\fB\-\-ssl\-verify\-server\-cert\fR +.sp +Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: table option +.\" table option: mysql +\fB\-\-table\fR, +\fB\-t\fR +.sp +Display output in table format\&. This is the default for interactive use, but can be used to produce table output in batch mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: tee option +.\" tee option: mysql +\fB\-\-tee=\fR\fB\fIfile_name\fR\fR +.sp +Append a copy of output to the given file\&. This option works only in interactive mode\&. +the section called \(lqMYSQL COMMANDS\(rq, discusses tee files further\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: unbuffered option +.\" unbuffered option: mysql +\fB\-\-unbuffered\fR, +\fB\-n\fR +.sp +Flush the buffer after each query\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: user option +.\" user option: mysql +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MariaDB user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: verbose option +.\" verbose option: mysql +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Produce more output about what the program does\&. This option can be given multiple times to produce more and more output\&. (For example, +\fB\-v \-v \-v\fR +produces table output format even in batch mode\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: version option +.\" version option: mysql +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: vertical option +.\" vertical option: mysql +\fB\-\-vertical\fR, +\fB\-E\fR +.sp +Print query output rows vertically (one line per column value)\&. Without this option, you can specify vertical output for individual statements by terminating them with +\eG\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: wait option +.\" wait option: mysql +\fB\-\-wait\fR, +\fB\-w\fR +.sp +If the connection cannot be established, wait and retry instead of aborting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: xml option +.\" xml option: mysql +\fB\-\-xml\fR, +\fB\-X\fR +.sp +Produce XML output\&. +The output when +\fB\-\-xml\fR +is used with +\fBmysql\fR +matches that of +\fBmysqldump \fR\fB\fB\-\-xml\fR\fR\&. See +\fBmysqldump\fR(1) +for details\&. +.sp +The XML output also uses an XML namespace, as shown here: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-xml \-uroot \-e "SHOW VARIABLES LIKE \'version%\'"\fR +<?xml version="1\&.0"?> +<resultset statement="SHOW VARIABLES LIKE \'version%\'" xmlns:xsi="http://www\&.w3\&.org/2001/XMLSchema\-instance"> +<row> +<field name="Variable_name">version</field> +<field name="Value">5\&.0\&.40\-debug</field> +</row> +<row> +<field name="Variable_name">version_comment</field> +<field name="Value">Source distribution</field> +</row> +<row> +<field name="Variable_name">version_compile_machine</field> +<field name="Value">i686</field> +</row> +<row> +<field name="Variable_name">version_compile_os</field> +<field name="Value">suse\-linux\-gnu</field> +</row> +</resultset> +.fi +.RE +.PP +You can also set the following variables by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" timeout: connect_timeout variable +.\" connect_timeout variable +connect_timeout +.sp +The number of seconds before connection timeout\&. (Default value is +0\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" max_allowed_packet variable +max_allowed_packet +.sp +The maximum packet length to send to or receive from the server\&. (Default value is 16MB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" max_join_size variable +max_join_size +.sp +The automatic limit for rows in a join when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" net_buffer_length variable +net_buffer_length +.sp +The buffer size for TCP/IP and socket communication\&. (Default value is 16KB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" select_limit variable +select_limit +.sp +The automatic limit for +SELECT +statements when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000\&.) +.RE +.\" MYSQL_HISTFILE environment variable +.\" environment variable: MYSQL_HISTFILE +.\" HOME environment variable +.\" environment variable: HOME +.\" mysql history file +.\" command-line history: mysql +.\" .mysql_history file +.PP +On Unix, the +\fBmysql\fR +client writes a record of executed statements to a history file\&. By default, this file is named +\&.mysql_history +and is created in your home directory\&. To specify a different file, set the value of the +MYSQL_HISTFILE +environment variable\&. +.PP +The +\&.mysql_history +should be protected with a restrictive access mode because sensitive information might be written to it, such as the text of SQL statements that contain passwords\&. +.PP +If you do not want to maintain a history file, first remove +\&.mysql_history +if it exists, and then use either of the following techniques: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Set the +MYSQL_HISTFILE +variable to +/dev/null\&. To cause this setting to take effect each time you log in, put the setting in one of your shell\'s startup files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Create +\&.mysql_history +as a symbolic link to +/dev/null: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBln \-s /dev/null $HOME/\&.mysql_history\fR +.fi +.if n \{\ +.RE +.\} +.sp +You need do this only once\&. +.RE +.SH "MYSQL COMMANDS" +.PP +\fBmysql\fR +sends each SQL statement that you issue to the server to be executed\&. There is also a set of commands that +\fBmysql\fR +itself interprets\&. For a list of these commands, type +help +or +\eh +at the +mysql> +prompt: +.\" mysql commands: list of +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp\fR +List of all MySQL commands: +Note that all text commands must be first on line and end with \';\' +? (\e?) Synonym for `help\'\&. +clear (\ec) Clear command\&. +connect (\er) Reconnect to the server\&. Optional arguments are db and host\&. +delimiter (\ed) Set statement delimiter\&. +edit (\ee) Edit command with $EDITOR\&. +ego (\eG) Send command to mysql server, display result vertically\&. +exit (\eq) Exit mysql\&. Same as quit\&. +go (\eg) Send command to mysql server\&. +help (\eh) Display this help\&. +nopager (\en) Disable pager, print to stdout\&. +notee (\et) Don\'t write into outfile\&. +pager (\eP) Set PAGER [to_pager]\&. Print the query results via PAGER\&. +print (\ep) Print current command\&. +prompt (\eR) Change your mysql prompt\&. +quit (\eq) Quit mysql\&. +rehash (\e#) Rebuild completion hash\&. +source (\e\&.) Execute an SQL script file\&. Takes a file name as an argument\&. +status (\es) Get status information from the server\&. +system (\e!) Execute a system shell command\&. +tee (\eT) Set outfile [to_outfile]\&. Append everything into given + outfile\&. +use (\eu) Use another database\&. Takes database name as argument\&. +charset (\eC) Switch to another charset\&. Might be needed for processing + binlog with multi\-byte charsets\&. +warnings (\eW) Show warnings after every statement\&. +nowarning (\ew) Don\'t show warnings after every statement\&. +For server side help, type \'help contents\' +.fi +.if n \{\ +.RE +.\} +.PP +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\&. +.PP +The use of short\-form commands within multi\-line +/* \&.\&.\&. */ +comments is not supported\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: help command +.\" help command: mysql +\fBhelp [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB\eh [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB\e? [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB? [\fR\fB\fIarg\fR\fR\fB]\fR +.sp +Display a help message listing the available +\fBmysql\fR +commands\&. +.sp +If you provide an argument to the +help +command, +\fBmysql\fR +uses it as a search string to access server\-side help\&. For more information, see +the section called \(lqMYSQL SERVER-SIDE HELP\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: charset command +.\" charset command: mysql +\fBcharset \fR\fB\fIcharset_name\fR\fR, +\fB\eC \fR\fB\fIcharset_name\fR\fR +.sp +Change the default character set and issue a +SET NAMES +statement\&. This enables the character set to remain synchronized on the client and server if +\fBmysql\fR +is run with auto\-reconnect enabled (which is not recommended), because the specified character set is used for reconnects\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: clear command +.\" clear command: mysql +\fBclear\fR, +\fB\ec\fR +.sp +Clear the current input\&. Use this if you change your mind about executing the statement that you are entering\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: connect command +.\" connect command: mysql +\fBconnect [\fR\fB\fIdb_name\fR\fR\fB \fR\fB\fIhost_name\fR\fR\fB]]\fR, +\fB\er [\fR\fB\fIdb_name\fR\fR\fB \fR\fB\fIhost_name\fR\fR\fB]]\fR +.sp +Reconnect to the server\&. The optional database name and host name arguments may be given to specify the default database or the host where the server is running\&. If omitted, the current values are used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: delimiter command +.\" delimiter command: mysql +\fBdelimiter \fR\fB\fIstr\fR\fR, +\fB\ed \fR\fB\fIstr\fR\fR +.sp +Change the string that +\fBmysql\fR +interprets as the separator between SQL statements\&. The default is the semicolon character (\(lq;\(rq)\&. +.sp +The delimiter can be specified as an unquoted or quoted argument\&. Quoting can be done with either single quote (\') or douple quote (") characters\&. To include a quote within a quoted string, either quote the string with the other quote character or escape the quote with a backslash (\(lq\e\(rq) character\&. Backslash should be avoided outside of quoted strings because it is the escape character for MariaDB\&. For an unquoted argument, the delmiter is read up to the first space or end of line\&. For a quoted argument, the delimiter is read up to the matching quote on the line\&. +.sp +When the delimiter recognized by +\fBmysql\fR +is set to something other than the default of +\(lq;\(rq, instances of that character are sent to the server without interpretation\&. However, the server itself still interprets +\(lq;\(rq +as a statement delimiter and processes statements accordingly\&. This behavior on the server side comes into play for multiple\-statement execution, and for parsing the body of stored procedures and functions, triggers, and events\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: edit command +.\" edit command: mysql +\fBedit\fR, +\fB\ee\fR +.sp +Edit the current input statement\&. +\fBmysql\fR +checks the values of the +EDITOR +and +VISUAL +environment variables to determine which editor to use\&. The default editor is +\fBvi\fR +if neither variable is set\&. +.sp +The +\fBedit\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: ego command +.\" ego command: mysql +\fBego\fR, +\fB\eG\fR +.sp +Send the current statement to the server to be executed and display the result using vertical format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: exit command +.\" exit command: mysql +\fBexit\fR, +\fB\eq\fR +.sp +Exit +\fBmysql\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: go command +.\" go command: mysql +\fBgo\fR, +\fB\eg\fR +.sp +Send the current statement to the server to be executed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: nopager command +.\" nopager command: mysql +\fBnopager\fR, +\fB\en\fR +.sp +Disable output paging\&. See the description for +\fBpager\fR\&. +.sp +The +\fBnopager\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: notee command +.\" notee command: mysql +\fBnotee\fR, +\fB\et\fR +.sp +Disable output copying to the tee file\&. See the description for +\fBtee\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: nowarning command +.\" nowarning command: mysql +\fBnowarning\fR, +\fB\ew\fR +.sp +Enable display of warnings after each statement\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pager command +.\" pager command: mysql +\fBpager [\fR\fB\fIcommand\fR\fR\fB]\fR, +\fB\eP [\fR\fB\fIcommand\fR\fR\fB]\fR +.sp +Enable output paging\&. By using the +\fB\-\-pager\fR +option when you invoke +\fBmysql\fR, it is possible to browse or search query results in interactive mode with Unix programs such as +\fBless\fR, +\fBmore\fR, or any other similar program\&. If you specify no value for the option, +\fBmysql\fR +checks the value of the +PAGER +environment variable and sets the pager to that\&. Pager functionality works only in interactive mode\&. +.sp +Output paging can be enabled interactively with the +\fBpager\fR +command and disabled with +\fBnopager\fR\&. 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\&. +.sp +Output paging works only in Unix because it uses the +popen() +function, which does not exist on Windows\&. For Windows, the +\fBtee\fR +option can be used instead to save query output, although it is not as convenient as +\fBpager\fR +for browsing output in some situations\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: print command +.\" print command: mysql +\fBprint\fR, +\fB\ep\fR +.sp +Print the current input statement without executing it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: prompt command +.\" prompt command: mysql +\fBprompt [\fR\fB\fIstr\fR\fR\fB]\fR, +\fB\eR [\fR\fB\fIstr\fR\fR\fB]\fR +.sp +Reconfigure the +\fBmysql\fR +prompt to the given string\&. The special character sequences that can be used in the prompt are described later in this section\&. +.sp +If you specify the +prompt +command with no argument, +\fBmysql\fR +resets the prompt to the default of +mysql>\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: quit command +.\" quit command: mysql +\fBquit\fR, +\fB\eq\fR +.sp +Exit +\fBmysql\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: rehash command +.\" rehash command: mysql +\fBrehash\fR, +\fB\e#\fR +.sp +Rebuild the completion hash that enables database, table, and column name completion while you are entering statements\&. (See the description for the +\fB\-\-auto\-rehash\fR +option\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: source command +.\" source command: mysql +\fBsource \fR\fB\fIfile_name\fR\fR, +\fB\e\&. \fR\fB\fIfile_name\fR\fR +.sp +Read the named file and executes the statements contained therein\&. On Windows, you can specify path name separators as +/ +or +\e\e\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: status command +.\" status command: mysql +\fBstatus\fR, +\fB\es\fR +.sp +Provide status information about the connection and the server you are using\&. If you are running in +\fB\-\-safe\-updates\fR +mode, +status +also prints the values for the +\fBmysql\fR +variables that affect your queries\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: system command +.\" system command: mysql +\fBsystem \fR\fB\fIcommand\fR\fR, +\fB\e! \fR\fB\fIcommand\fR\fR +.sp +Execute the given command using your default command interpreter\&. +.sp +The +\fBsystem\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: tee command +.\" tee command: mysql +\fBtee [\fR\fB\fIfile_name\fR\fR\fB]\fR, +\fB\eT [\fR\fB\fIfile_name\fR\fR\fB]\fR +.sp +By using the +\fB\-\-tee\fR +option when you invoke +\fBmysql\fR, you can log statements and their output\&. All the data displayed on the screen is appended into a given file\&. This can be very useful for debugging purposes also\&. +\fBmysql\fR +flushes results to the file after each statement, just before it prints its next prompt\&. Tee functionality works only in interactive mode\&. +.sp +You can enable this feature interactively with the +\fBtee\fR +command\&. Without a parameter, the previous file is used\&. The +\fBtee\fR +file can be disabled with the +\fBnotee\fR +command\&. Executing +\fBtee\fR +again re\-enables logging\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: use command +.\" use command: mysql +\fBuse \fR\fB\fIdb_name\fR\fR, +\fB\eu \fR\fB\fIdb_name\fR\fR +.sp +Use +\fIdb_name\fR +as the default database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: warnings command +.\" warnings command: mysql +\fBwarnings\fR, +\fB\eW\fR +.sp +Enable display of warnings after each statement (if there are any)\&. +.RE +.PP +Here are a few tips about the +\fBpager\fR +command: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can use it to write to a file and the results go only to the file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager cat > /tmp/log\&.txt\fR +.fi +.if n \{\ +.RE +.\} +.sp +You can also pass any options for the program that you want to use as your pager: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager less \-n \-i \-S\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +In the preceding example, note the +\fB\-S\fR +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 +\fB\-S\fR +option to +\fBless\fR +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 +\fB\-S\fR +interactively within +\fBless\fR +to switch the horizontal\-browse mode on and off\&. For more information, read the +\fBless\fR +manual page: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBman less\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The +\fB\-F\fR +and +\fB\-X\fR +options may be used with +\fBless\fR +to cause it to exit if output fits on one screen, which is convenient when no scrolling is necessary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager less \-n \-i \-S \-F \-X\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can specify very complex pager commands for handling query output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager cat | tee /dr1/tmp/res\&.txt \e\fR + \fB| tee /dr2/tmp/res2\&.txt | less \-n \-i \-S\fR +.fi +.if n \{\ +.RE +.\} +.sp +In this example, the command would send query results to two files in two different directories on two different file systems mounted on +/dr1 +and +/dr2, yet still display the results onscreen via +\fBless\fR\&. +.RE +.PP +You can also combine the +\fBtee\fR +and +\fBpager\fR +functions\&. Have a +\fBtee\fR +file enabled and +\fBpager\fR +set to +\fBless\fR, and you are able to browse the results using the +\fBless\fR +program and still have everything appended into a file the same time\&. The difference between the Unix +\fBtee\fR +used with the +\fBpager\fR +command and the +\fBmysql\fR +built\-in +\fBtee\fR +command is that the built\-in +\fBtee\fR +works even if you do not have the Unix +\fBtee\fR +available\&. The built\-in +\fBtee\fR +also logs everything that is printed on the screen, whereas the Unix +\fBtee\fR +used with +\fBpager\fR +does not log quite that much\&. Additionally, +\fBtee\fR +file logging can be turned on and off interactively from within +\fBmysql\fR\&. This is useful when you want to log some queries to a file, but not others\&. +.\" mysql prompt command +.PP +The +\fBprompt\fR +command reconfigures the default +mysql> +prompt\&. The string for defining the prompt can contain the following special sequences\&. +.TS +allbox tab(:); +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l. +T{ +\fBOption\fR +T}:T{ +\fBDescription\fR +T} +T{ +\ec +T}:T{ +A counter that increments for each statement you issue +T} +T{ +\eD +T}:T{ +The full current date +T} +T{ +\ed +T}:T{ +The default database +T} +T{ +\eh +T}:T{ +The server host +T} +T{ +\el +T}:T{ +The current delimiter (new in 5\&.1\&.12) +T} +T{ +\em +T}:T{ +Minutes of the current time +T} +T{ +\en +T}:T{ +A newline character +T} +T{ +\eO +T}:T{ +The current month in three\-letter format (Jan, Feb, \&...) +T} +T{ +\eo +T}:T{ +The current month in numeric format +T} +T{ +\eP +T}:T{ +am/pm +T} +T{ +\ep +T}:T{ +The current TCP/IP port or socket file +T} +T{ +\eR +T}:T{ +The current time, in 24\-hour military time (0\(en23) +T} +T{ +\er +T}:T{ +The current time, standard 12\-hour time (1\(en12) +T} +T{ +\eS +T}:T{ +Semicolon +T} +T{ +\es +T}:T{ +Seconds of the current time +T} +T{ +\et +T}:T{ +A tab character +T} +T{ +\eU +T}:T{ +.PP +Your full +\fIuser_name\fR@\fIhost_name\fR +account name +T} +T{ +\eu +T}:T{ +Your user name +T} +T{ +\ev +T}:T{ +The server version +T} +T{ +\ew +T}:T{ +The current day of the week in three\-letter format (Mon, Tue, \&...) +T} +T{ +\eY +T}:T{ +The current year, four digits +T} +T{ +\ey +T}:T{ +The current year, two digits +T} +T{ +\e_ +T}:T{ +A space +T} +T{ +\e\ \& +T}:T{ +A space (a space follows the backslash) +T} +T{ +\e\' +T}:T{ +Single quote +T} +T{ +\e" +T}:T{ +Double quote +T} +T{ +\e\e +T}:T{ +A literal \(lq\e\(rq backslash character +T} +T{ +\e\fIx\fR +T}:T{ +.PP +\fIx\fR, for any +\(lq\fIx\fR\(rq +not listed above +T} +.TE +.sp 1 +.PP +You can set the prompt in several ways: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse an environment variable\&.\fR +You can set the +MYSQL_PS1 +environment variable to a prompt string\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBexport MYSQL_PS1="(\eu@\eh) [\ed]> "\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse a command\-line option\&.\fR +You can set the +\fB\-\-prompt\fR +option on the command line to +\fBmysql\fR\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-prompt="(\eu@\eh) [\ed]> "\fR +(user@host) [database]> +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse an option file\&.\fR +You can set the +prompt +option in the +[mysql] +group of any MariaDB option file, such as +/etc/my\&.cnf +or the +\&.my\&.cnf +file in your home directory\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysql] +prompt=(\e\eu@\e\eh) [\e\ed]>\e\e_ +.fi +.if n \{\ +.RE +.\} +.sp +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\&. The overlap may cause you problems if you use single backslashes\&. For example, +\es +is 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: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysql] +prompt="\e\er:\e\em:\e\es> " +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fISet the prompt interactively\&.\fR +You can change your prompt interactively by using the +prompt +(or +\eR) command\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBprompt (\eu@\eh) [\ed]>\e_\fR +PROMPT set to \'(\eu@\eh) [\ed]>\e_\' +(\fIuser\fR@\fIhost\fR) [\fIdatabase\fR]> +(\fIuser\fR@\fIhost\fR) [\fIdatabase\fR]> prompt +Returning to default PROMPT of mysql> +mysql> +.fi +.if n \{\ +.RE +.\} +.RE +.SH "MYSQL SERVER-SIDE HELP" +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp \fR\fB\fIsearch_string\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you provide an argument to the +help +command, +\fBmysql\fR +uses it as a search string to access server\-side help\&. The proper operation of this command requires that the help tables in the +mysql +database be initialized with help topic information. +.PP +If there is no match for the search string, the search fails: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp me\fR +Nothing found +Please try to run \'help contents\' for a list of all accessible topics +.fi +.if n \{\ +.RE +.\} +.PP +Use +\fBhelp contents\fR +to see a list of the help categories: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp contents\fR +You asked for help about help category: "Contents" +For more information, type \'help <item>\', where <item> is one of the +following categories: + Account Management + Administration + Data Definition + Data Manipulation + Data Types + Functions + Functions and Modifiers for Use with GROUP BY + Geographic Features + Language Structure + Plugins + Storage Engines + Stored Routines + Table Maintenance + Transactions + Triggers +.fi +.if n \{\ +.RE +.\} +.PP +If the search string matches multiple items, +\fBmysql\fR +shows a list of matching topics: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp logs\fR +Many help items for your request exist\&. +To make a more specific request, please type \'help <item>\', +where <item> is one of the following topics: + SHOW + SHOW BINARY LOGS + SHOW ENGINE + SHOW LOGS +.fi +.if n \{\ +.RE +.\} +.PP +Use a topic as the search string to see the help entry for that topic: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp show binary logs\fR +Name: \'SHOW BINARY LOGS\' +Description: +Syntax: +SHOW BINARY LOGS +SHOW MASTER LOGS +Lists the binary log files on the server\&. This statement is used as +part of the procedure described in [purge\-binary\-logs], that shows how +to determine which logs can be purged\&. +mysql> SHOW BINARY LOGS; ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +| Log_name | File_size | ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +| binlog\&.000015 | 724935 | +| binlog\&.000016 | 733481 | ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +.fi +.if n \{\ +.RE +.\} +.SH "EXECUTING SQL STATEMENTS FROM A TEXT FILE" +.\" executing SQL statements from text files +.\" importing: data +.\" data: importing +.\" files: text +.\" text files: importing +.\" source (mysql client command) +.\" \. (mysql client command) +.\" mysql source (command for reading from text files) +.\" mysql \. (command for reading from text files) +.PP +The +\fBmysql\fR +client typically is used interactively, like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +However, it is also possible to put your SQL statements in a file and then tell +\fBmysql\fR +to read its input from that file\&. To do so, create a text file +\fItext_file\fR +that contains the statements you wish to execute\&. Then invoke +\fBmysql\fR +as shown here: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR\fB < \fR\fB\fItext_file\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you place a +USE \fIdb_name\fR +statement as the first statement in the file, it is unnecessary to specify the database name on the command line: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql < text_file\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you are already running +\fBmysql\fR, you can execute an SQL script file using the +source +command or +\e\&. +command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBsource \fR\fB\fIfile_name\fR\fR +mysql> \fB\e\&. \fR\fB\fIfile_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Sometimes you may want your script to display progress information to the user\&. For this you can insert statements like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +SELECT \'<info_to_display>\' AS \' \'; +.fi +.if n \{\ +.RE +.\} +.PP +The statement shown outputs +<info_to_display>\&. +.PP +You can also invoke +\fBmysql\fR +with the +\fB\-\-verbose\fR +option, which causes each statement to be displayed before the result that it produces\&. +.PP +\fBmysql\fR +ignores Unicode byte order mark (BOM) characters at the beginning of input files\&. Presence of a BOM does not cause +\fBmysql\fR +to change its default character set\&. To do that, invoke +\fBmysql\fR +with an option such as +\fB\-\-default\-character\-set=utf8\fR\&. +.PP +.SH "MYSQL TIPS" +.PP +This section describes some techniques that can help you use +\fBmysql\fR +more effectively\&. +.SS "Displaying Query Results Vertically" +.PP +Some query results are much more readable when displayed vertically, instead of in the usual horizontal table format\&. Queries can be displayed vertically by terminating the query with \eG instead of a semicolon\&. For example, longer text values that include newlines often are much easier to read with vertical output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\eG\fR +*************************** 1\&. row *************************** + msg_nro: 3068 + date: 2000\-03\-01 23:29:50 +time_zone: +0200 +mail_from: Monty + reply: monty@no\&.spam\&.com + mail_to: "Thimble Smith" <tim@no\&.spam\&.com> + sbj: UTF\-8 + txt: >>>>> "Thimble" == Thimble Smith writes: +Thimble> Hi\&. I think this is a good idea\&. Is anyone familiar +Thimble> with UTF\-8 or Unicode? Otherwise, I\'ll put this on my +Thimble> TODO list and see what happens\&. +Yes, please do that\&. +Regards, +Monty + file: inbox\-jani\-1 + hash: 190402944 +1 row in set (0\&.09 sec) +.fi +.if n \{\ +.RE +.\} +.SS "Using the \-\-safe\-updates Option" +.\" safe-updates option +.PP +For beginners, a useful startup option is +\fB\-\-safe\-updates\fR +(or +\fB\-\-i\-am\-a\-dummy\fR, which has the same effect)\&. It is helpful for cases when you might have issued a +DELETE FROM \fItbl_name\fR +statement but forgotten the +WHERE +clause\&. Normally, such a statement deletes all rows from the table\&. With +\fB\-\-safe\-updates\fR, you can delete rows only by specifying the key values that identify them\&. This helps prevent accidents\&. +.PP +When you use the +\fB\-\-safe\-updates\fR +option, +\fBmysql\fR +issues the following statement when it connects to the MariaDB server: +.sp +.if n \{\ +.RS 4 +.\} +.nf +SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000; +.fi +.if n \{\ +.RE +.\} +.PP +The +SET +statement has the following effects: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You are not allowed to execute an +UPDATE +or +DELETE +statement unless you specify a key constraint in the +WHERE +clause or provide a +LIMIT +clause (or both)\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +UPDATE \fItbl_name\fR SET \fInot_key_column\fR=\fIval\fR WHERE \fIkey_column\fR=\fIval\fR; +UPDATE \fItbl_name\fR SET \fInot_key_column\fR=\fIval\fR LIMIT 1; +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The server limits all large +SELECT +results to 1,000 rows unless the statement includes a +LIMIT +clause\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The server aborts multiple\-table +SELECT +statements that probably need to examine more than 1,000,000 row combinations\&. +.RE +.PP +To specify limits different from 1,000 and 1,000,000, you can override the defaults by using the +\fB\-\-select\-limit\fR +and +\fB\-\-max\-join\-size\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-safe\-updates \-\-select\-limit=500 \-\-max\-join\-size=10000\fR +.fi +.if n \{\ +.RE +.\} +.SS "Disabling mysql Auto\-Reconnect" +.PP +If the +\fBmysql\fR +client loses its connection to the server while sending a statement, it immediately and automatically tries to reconnect once to the server and send the statement again\&. However, even if +\fBmysql\fR +succeeds in reconnecting, your first connection has ended and all your previous session objects and settings are lost: temporary tables, the autocommit mode, and user\-defined and session variables\&. Also, any current transaction rolls back\&. This behavior may be dangerous for you, as in the following example where the server was shut down and restarted between the first and second statements without you knowing it: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSET @a=1;\fR +Query OK, 0 rows affected (0\&.05 sec) +mysql> \fBINSERT INTO t VALUES(@a);\fR +ERROR 2006: MySQL server has gone away +No connection\&. Trying to reconnect\&.\&.\&. +Connection id: 1 +Current database: test +Query OK, 1 row affected (1\&.30 sec) +mysql> \fBSELECT * FROM t;\fR ++\-\-\-\-\-\-+ +| a | ++\-\-\-\-\-\-+ +| NULL | ++\-\-\-\-\-\-+ +1 row in set (0\&.05 sec) +.fi +.if n \{\ +.RE +.\} +.PP +The +@a +user variable has been lost with the connection, and after the reconnection it is undefined\&. If it is important to have +\fBmysql\fR +terminate with an error if the connection has been lost, you can start the +\fBmysql\fR +client with the +\fB\-\-skip\-reconnect\fR +option\&. +.PP +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2019 MariaDB Foundation +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "NOTES" +.IP " 1." 4 +Bug#25946 +.RS 4 +\%http://bugs.mysql.com/bug.php?id=25946 +.RE +.SH "SEE ALSO" +For more information, please refer to the MariaDB Knowledge Base, available online at https://mariadb.com/kb/ +.SH AUTHOR +MariaDB Foundation (http://www.mariadb.org/). |