4.6.6 mysqlaccess — Client for Checking Access Privileges

mysqlaccess is a diagnostic tool that Yves Carlier has provided for the MySQL distribution. It checks the access privileges for a host name, user name, and database combination. Note that mysqlaccess checks access using only the user, db, and host tables. It does not check table, column, or routine privileges specified in the tables_priv, columns_priv, or procs_priv tables.

Invoke mysqlaccess like this:

shell> mysqlaccess [host_name [user_name [db_name]]] [options]

mysqlaccess supports the following options.

Table 4.9 mysqlaccess Options

FormatOption FileDescription
--briefbriefGenerate reports in single-line tabular format
--commitcommitCopy the new access privileges from the temporary tables to the original grant tables
--copycopyReload the temporary grant tables from original ones
--db=db_namedbSpecify the database name
--debug=#debugSpecify the debug level
--help Display help message and exit
--host=host_namehostConnect to the MySQL server on the given host
--howtohowtoDisplay some examples that show how to use mysqlaccess
--old_serverold_serverAssume that the server is an old MySQL server (prior to MySQL 3.21)
--password[=password]passwordThe password to use when connecting to the server
--planplanDisplay suggestions and ideas for future releases
--previewpreviewShow the privilege differences after making changes to the temporary grant tables
--relnotesrelnotesDisplay the release notes
--rhost=host_namerhostConnect to the MySQL server on the given host
--rollbackrollbackUndo the most recent changes to the temporary grant tables.
--spassword[=password]spasswordThe password to use when connecting to the server as the superuser
--superuser=user_namesuperuserSpecify the user name for connecting as the superuser
--tabletableGenerate reports in table format
--user=user_name,userMySQL user name to use when connecting to server
--version Display version information and exit

If your MySQL distribution is installed in some nonstandard location, you must change the location where mysqlaccess expects to find the mysql client. Edit the mysqlaccess script at approximately line 18. Search for a line that looks like this:

$MYSQL     = '/usr/local/bin/mysql';    # path to mysql executable

Change the path to reflect the location where mysql actually is stored on your system. If you do not do this, a Broken pipe error will occur when you run mysqlaccess.