mysqlreport(1) MYSQL mysqlreport(1)
NAME
mysqlreport - Makes a friendly report of important MySQL status values
SYNTAX
mysqlreport [options]
DESCRIPTION
mysqlreport makes a friendly report of important MySQL status values.
Actually, it makes a friendly report of nearly every status value from
SHOW STATUS. Unlike SHOW STATUS which simply dumps over 100 values to
screen in one long list, mysqlreport interprets and formats the values
and presents the basic values and many more inferred values in a hu-
man-readable format. Numerous example reports are available at the
mysqlreport web page at http://hackmysql.com/mysqlreport.
The benefit of mysqlreport is that it allows you to very quickly see a
wide array of performance indicators for your MySQL server which would
otherwise need to be calculated by hand from all the various SHOW STATUS
values. For example, the Index Read Ratio is an important value but it's
not present in SHOW STATUS; it's an inferred value (the ratio of
Key_reads to Key_read_requests).
This documentation outlines all the command line options in mysqlreport,
most of which control which reports are printed. This document does not
address how to interpret these reports; that topic is covered in the
document Guide To Understanding mysqlreport at http://hack-
mysql.com/mysqlreportguide.
OPTIONS
Technically, command line options are in the form --option, but -option
works too. All options can be abbreviated if the abbreviation is unique.
For example, option --host can be abbreviated --ho but not --h because
--h is ambiguous: it could mean --host or --help.
--help Output help information and exit.
--user USER
--password
As of version 2.3 --password can take the password on the command
line like "--password FOO". Using --password alone without giving
a password on the command line causes mysqlreport to prompt for a
password.
--host ADDRESS
--port PORT
--socket SOCKET
--no-mycnf
--no-mycnf makes mysqlreport not read ~/.my.cnf which it does by
default otherwise. --user and --password always override values
from ~/.my.cnf.
--dtq Print Distribution of Total Queries (DTQ) report (under Total in
Questions report). Queries (or Questions) can be divided into
four main areas: DMS (see --dms below), Com_ (see --com below),
COM_QUIT (see COM_QUIT and Questions at http://hack-
mysql.com/com_quit), and Unknown. --dtq lists the number of
queries in each of these areas in descending order.
--dms Print Data Manipulation Statements (DMS) report (under DMS in
Questions report). DMS are those from the MySQL manual section
13.2. Data Manipulation Statements. (Currently, mysqlreport con-
siders only SELECT, INSERT, REPLACE, UPDATE, and DELETE.) Each
DMS is listed in descending order by count.
--com N
Print top N number of non-DMS Com_ status values in descending
order (after DMS in Questions report). If N is not given, default
is 3. Such non-DMS Com_ values include Com_change_db,
Com_show_tables, Com_rollback, etc.
--sas Print report for Select_ and Sort_ status values (after Questions
report). See MySQL Select and Sort Status Variables at
http://hackmysql.com/selectandsort.
--tab Print Threads, Aborted, and Bytes status reports (after Created
temp report). As of mysqlreport v2.3 the Threads report reports
on all Threads_ status values.
--qcache
Print Query Cache report.
--all Equivalent to "--dtq --dms --com 3 --sas --qcache". (Notice
--tab is not invoked by --all.)
--infile FILE
Instead of getting SHOW STATUS values from MySQL, read values
from FILE. FILE is often a copy of the output of SHOW STATUS in-
cluding formatting characters (|, +, -). mysqlreport expects
FILE to have the format " value number " where value is only al-
pha and underscore characters (A-Z and _) and number is a posi-
tive integer. Anything before, between, or after value and number
is ignored. mysqlreport also needs the following MySQL server
variables: version, table_cache, max_connections,
key_buffer_size, query_cache_size. These values can be specified
in INFILE in the format "name = value" where name is one of the
aforementioned server variables and value is a positive integer
with or without a trailing M and possible periods (for version).
For example, to specify an 18M key_buffer_size: key_buffer_size =
18M. Or, a 256 table_cache: table_cache = 256. The M implies
Megabytes not million, so 18M means 18,874,368 not 18,000,000. If
these server variables are not specified the following defaults
are used (respectively) which may cause strange values to be re-
ported: 0.0.0, 64, 100, 8M, 0.
--outfile FILE
After printing the report to screen, print the report to FILE
too. Internally, mysqlreport always writes the report to a temp
file first: /tmp/mysqlreport.PID on *nix, c:sqlreport.PID on Win-
dows (PID is the script's process ID). Then it prints the temp
file to screen. Then if --outfile is specified, the temp file is
copied to OUTFILE. After --email (below), the temp file is
deleted.
--email ADDRESS
After printing the report to screen, email the report to ADDRESS.
This option requires sendmail in /usr/sbin/, therefore it does
not work on Windows. /usr/sbin/sendmail can be a sym link to
qmail, for example, or any MTA that emulates sendmail's -t com-
mand line option and operation. The FROM: field is "mysqlreport",
SUBJECT: is "MySQL status report".
--flush-status
Execute a "FLUSH STATUS;" after generating the reports. If you
do not have permissions in MySQL to do this an error from
DBD::MariaDB::st will be printed after the reports.
AUTHORS
Daniel Nichter
If mysqlreport breaks, send me a message from http://hackmysql.com/feed-
back with the error.
SEE ALSO
mytop(1)
The comprehensive Guide To Understanding mysqlreport at http://hack-
mysql.com/mysqlreportguide.
Daniel Nichter 2.5 2006-09-01 (docrev 2006-05-19) mysqlreport(1)
Generated by dwww version 1.16 on Tue Dec 16 06:03:34 CET 2025.