mysqladmin is an administration program for the mysqld daemon. It can be used to:

  • Monitor what the MariaDB clients are doing (processlist)
  • Get usage statistics and variables from the MariaDB server
  • Create/drop databases
  • Flush (reset) logs, statistics and tables
  • Kill running queries.
  • Stop the server (shutdown)
  • Start/stop slaves
  • Check if the server is alive (ping)

Usage

mysqladmin [options] command [command-arg] [command [command-arg]] ...

mysqladmin options

OptionDescriptionAdded
--character-sets-dir=nameDirectory where the character set files are located.
-C, --compressCompress all information sent between the client and the server if both support compression.
--connect_timeout=valMaximum time in seconds before connection timeout. The default value is 43200 (12 hours).
-c val, --count=valNumber of iterations to make. This works with -i (--sleep) only.
--debug[=debug_options], -# [debug_options]Write a debugging log. A typical debug_options string is d:t:o,file_name. The default is d:t:o,/tmp/mysqladmin.trace.
--debug-checkCheck memory and open file usage at exit.
--debug-infoPrint debugging information and memory and CPU usage statistics when the program exits.
--default-auth=pluginDefault authentication client-side plugin to use.
--default-character-set=nameSet the default character set.
-f, --forceDon't ask for confirmation on drop database; with multiple commands, continue even if an error occurs.
-?, --helpDisplay this help and exit.
-h name, --host=nameHostname to connect to.
-l, --localSuppress the SQL command(s) from being written to the binary log by enabling sql_log_bin=0 for the session.MariaDB 10.2.5, MariaDB 10.1.22, MariaDB 10.0.30
-b, --no-beepTurn off beep on error.
-p[password], --password[=password]Password to use when connecting to server. If password is not given it's asked from the terminal.
--pipe, -WOn Windows, connect to the server via a named pipe. This option applies only if the server supports named-pipe connections.
-P portnum, --port=portnumPort number to use for connection, or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
--protocol=nameThe protocol to use for connection (tcp, socket, pipe, memory).
-r, --relativeShow difference between current and previous values when used with -i. Currently only works with extended-status.
-O value, --set-variable=vaueChange the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.
--shutdown_timeout=valMaximum number of seconds to wait for server shutdown. The default value is 3600 (1 hour).
-s, --silentSilently exit if one can't connect to server.
-i delay, --sleep=delay Execute commands repeatedly, sleeping for delay seconds in between. The --count option determines the number of iterations. If --count is not given, mysqladmin executes commands indefinitely until interrupted.
-S name, --socket=nameFor connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use.
--sslEnable TLS for connection (automatically enabled with other flags).Disable with '--skip-ssl'.
--ssl-ca=nameCA file in PEM format (check OpenSSL docs, implies --ssl).
--ssl-capath=nameCA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=nameX509 cert in PEM format (implies --ssl).
--ssl-cipher=nameSSL cipher to use (implies --ssl).
--ssl-key=nameX509 key in PEM format (implies --ssl).
--ssl-crl=nameCertificate revocation list (implies --ssl).
--ssl-crlpath=nameCertificate revocation list path (implies --ssl).
--ssl-verify-server-certVerify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default.
-u, --user=nameUser for login if not current user.
-v, --verboseWrite more information.
-V, --versionOutput version information and exit.
-E, --verticalPrint output vertically. Is similar to '--relative', but prints output vertically.
-w[count], --wait[=count]If the connection cannot be established, wait and retry instead of aborting. If a count value is given, it indicates the number of times to retry. The default is one time.

mysqladmin variables

Variables can be set with --variable-name=value.

Variables and boolean optionsValue
count0
debug-checkFALSE
debug-infoFALSE
forceFALSE
compressFALSE
character-sets-dir(No default value)
default-character-set(No default value)
host(No default value)
no-beepFALSE
port3306
relativeFALSE
socket/var/run/mysqld/mysqld.sock
sleep0
sslFALSE
ssl-ca(No default value)
ssl-capath(No default value)
ssl-cert(No default value)
ssl-cipher(No default value)
ssl-key(No default value)
ssl-verify-server-certFALSE
user(No default value)
verboseFALSE
verticalFALSE
connect_timeout43200
shutdown_timeout3600

mysqladmin default options

Default options are read from the following files in the given order:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/etc/my.cnf
  4. /.my.cnf

The following groups are read:

  1. mysqladmin
  2. client
  3. client-server
  4. client-mariadb

The following options may be given as the first argument:

OptionDescription
--print-defaultsPrint the program argument list and exit.
--no-defaultsDon't read default options from any option file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

mysqladmin commands

Command is one or more of the following. Commands may be shortened to a unique prefix.

CommandDescriptionAdded
create databasenameCreate a new database.
debugInstruct server to write debug information to log.
drop databasenameDelete a database and all its tables.
extended-statusReturn all status variables and their values.
flush-all-statisticsFlush all statistics tables
flush-all-statusFlush status and statistics.
flush-client-statisticsFlush client statistics.
flush-hostsFlush all cached hosts.
flush-index-statisticsFlush index statistics.
flush-logsFlush all logs.
flush-privilegesReload grant tables (same as reload).
flush-slow-logFlush slow query log.
flush-statusClear status variables.
flush-table-statisticsClear table statistics.
flush-tablesFlush all tables.
flush-threadsFlush the thread cache.
flush-user-statisticsFlush user statistics.
kill id,id,...Kill mysql threads.
password new-passwordChange old password to new-password. The new password can be passed on the commandline as the next argument (for example, mysqladmin password "new_password", or, from MariaDB 10.0, can be omitted (as long as no other command follows), in which case the user will be prompted for a password. If the password contains special characters, it needs to be enclosed in quotation marks. In Windows, the quotes can only be double quotes, as single quotes are assumed to be part of the password. If the server was started with the --skip-grant-tables option, changing the password in this way will have no effect.
old-password new-passwordChange old password to new-password using the old pre-MySQL 4.1 format.
pingCheck if mysqld is alive.
processlistShow list of active threads in server, equivalent to SHOW PROCESSLIST. With --verbose, equivalent to SHOW FULL PROCESSLIST.
reloadReload grant tables.
refreshFlush all tables and close and open log files.
shutdownTake server down. If connected to a local server using a Unix socket file, mysqladmin waits until the server's process ID file has been removed to ensure that the server has stopped properly. See also SHUTDOWN.
statusGives a short status message from the server.
start-all-slavesStart all slaves.MariaDB 10.0.0
start-slaveStart replication on a slave server.
stop-all-slavesStop all slaves.MariaDB 10.0.0
stop-slaveStop replication on a slave server.
variablesPrints variables available.
versionReturns version as well as status info from the server.

Examples

Quick check of what the server is doing:

shell> mysqladmin status
Uptime: 8023 Threads: 1 Questions: 14 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.1
shell> mysqladmin processlist
+----+-------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+-------+------------------+
....
+----+-------+-----------+----+---------+------+-------+------------------+

More extensive information of what is happening 'just now' changing (great for troubleshooting a slow server):

shell> mysqladmin --relative --sleep=1 extended-status | grep -v " 0 "

Check the variables for a running server:

shell> mysqladmin variables | grep datadir
| datadir | /my/data/ |

Using a shortened prefix for the version command:

shell> mysqladmin ver
mysqladmin Ver 9.1 Distrib 10.1.6-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Server version		10.1.6-MariaDB-1~trusty-log
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/run/mysqld/mysqld.sock
Uptime:			1 hour 33 min 33 sec

Threads: 1 Questions: 281 Slow queries: 0 Opens: 64 Flush tables: 1 Open tables: 76 Queries per second avg: 0.050

Other ways to stop mysqld (unix)

If you get the error:

mysqladmin: shutdown failed; error: 'Access denied; you need (at least one of) the SHUTDOWN privilege(s) for this operation'

It means that you didn't use mysqladmin with a user that has the SUPER or SHUTDOWN privilege.

If you don't know the user password, you can still take the mysqld process down with a system kill command:

kill -SIGTERM pid-of-mysqld-process

The above is identical to mysqladmin shutdown.

On windows you should use:

NET STOP MySQL

With MariaDB 10.0 and newer you can use the SHUTDOWN command from any client.

See also

  • SHUTDOWN command
  • mytop, a 'top' like program for MariaDB/MySQL that allows you to see what the server is doing. A mytop optimized for MariaDB is included in MariaDB 5.3

Comments

Comments loading...