mysqladmin
Contents
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
Option | Description |
---|---|
--character-sets-dir=name | Directory where the character set files are located. |
-C , --compress | Compress all information sent between the client and the server if both support compression. |
--connect_timeout=val | Maximum time in seconds before connection timeout. The default value is 43200 (12 hours). |
-c val , --count=val | Number 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-check | Check memory and open file usage at exit. |
--debug-info | Print debugging information and memory and CPU usage statistics when the program exits. |
--default-auth=plugin | Default authentication client-side plugin to use. |
--default-character-set=name | Set the default character set. |
-f , --force | Don't ask for confirmation on drop database; with multiple commands, continue even if an error occurs. |
-? , --help | Display this help and exit. |
-h name , --host=name | Hostname to connect to. |
-b , --no-beep | Turn 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 , -W | On Windows, connect to the server via a named pipe. This option applies only if the server supports named-pipe connections. |
-P portnum , --port=portnum | Port 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=name | The protocol to use for connection (tcp, socket, pipe, memory). |
-r , --relative | Show difference between current and previous values when used with -i . Currently only works with extended-status. |
-O value , --set-variable=vaue | Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value . |
--shutdown_timeout=val | Maximum number of seconds to wait for server shutdown. The default value is 3600 (1 hour). |
-s , --silent | Silently 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=name | For connections to localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use. |
--ssl | Enable TLS for connection (automatically enabled with other flags).Disable with '--skip-ssl '. |
--ssl-ca=name | CA file in PEM format (check OpenSSL docs, implies --ssl ). |
--ssl-capath=name | CA directory (check OpenSSL docs, implies --ssl ). |
--ssl-cert=name | X509 cert in PEM format (implies --ssl ). |
--ssl-cipher=name | SSL cipher to use (implies --ssl ). |
--ssl-key=name | X509 key in PEM format (implies --ssl ). |
--ssl-crl=name | Certificate revocation list (implies --ssl ). |
--ssl-crlpath=name | Certificate revocation list path (implies --ssl ). |
--ssl-verify-server-cert | Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. |
-u , --user=name | User for login if not current user. |
-v , --verbose | Write more information. |
-V , --version | Output version information and exit. |
-E , --vertical | Print 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 options | Value |
---|---|
count | 0 |
debug-check | FALSE |
debug-info | FALSE |
force | FALSE |
compress | FALSE |
character-sets-dir | (No default value) |
default-character-set | (No default value) |
host | (No default value) |
no-beep | FALSE |
port | 3306 |
relative | FALSE |
socket | /var/run/mysqld/mysqld.sock |
sleep | 0 |
ssl | FALSE |
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-cert | FALSE |
user | (No default value) |
verbose | FALSE |
vertical | FALSE |
connect_timeout | 43200 |
shutdown_timeout | 3600 |
mysqladmin default options
Default options are read from the following files in the given order:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
/.my.cnf
The following groups are read:
mysqladmin
client
client-server
client-mariadb
The following options may be given as the first argument:
Option | Description |
---|---|
--print-defaults | Print the program argument list and exit. |
--no-defaults | Don'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.
Command | Description | Added |
---|---|---|
create databasename | Create a new database. | |
debug | Instruct server to write debug information to log. | |
drop databasename | Delete a database and all its tables. | |
extended-status | Return all status variables and their values. | |
flush-all-statistics | Flush all statistics tables | |
flush-all-status | Flush status and statistics. | |
flush-client-statistics | Flush client statistics. | |
flush-hosts | Flush all cached hosts. | |
flush-index-statistics | Flush index statistics. | |
flush-logs | Flush all logs. | |
flush-privileges | Reload grant tables (same as reload). | |
flush-slow-log | Flush slow query log. | |
flush-status | Clear status variables. | |
flush-table-statistics | Clear table statistics. | |
flush-tables | Flush all tables. | |
flush-threads | Flush the thread cache. | |
flush-user-statistics | Flush user statistics. | |
kill id,id,... | Kill mysql threads. | |
password new-password | Change 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-password | Change old password to new-password using the old pre-MySQL 4.1 format. | |
ping | Check if mysqld is alive. | |
processlist | Show list of active threads in server, equivalent to SHOW PROCESSLIST. With --verbose , equivalent to SHOW FULL PROCESSLIST. | |
reload | Reload grant tables. | |
refresh | Flush all tables and close and open log files. | |
shutdown | Take 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. | |
status | Gives a short status message from the server. | |
start-all-slaves | Start all slaves. | MariaDB 10.0.0 |
start-slave | Start replication on a slave server. | |
stop-all-slaves | Stop all slaves. | MariaDB 10.0.0 |
stop-slave | Stop replication on a slave server. | |
variables | Prints variables available. | |
version | Returns 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