mysqlaccess is a diagnostic tool that Yves
Carlier has provided for the MySQL distribution. It checks the
access privileges for a hostname, username, 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 understands the following options:
-
Display a help message and exit.
-
Generate reports in single-line tabular format.
-
Copy the new access privileges from the temporary tables to the original grant tables. The grant tables must be flushed for the new privileges to take effect. (For example, execute a mysqladmin reload command.)
-
Reload the temporary grant tables from original ones.
-
Specify the database name.
-
Specify the debug level.
Ncan be an integer from 0 to 3. -
--host=host_name,-hhost_nameThe hostname to use in the access privileges.
-
Display some examples that show how to use mysqlaccess.
-
Assume that the server is an old MySQL server (before MySQL 3.21) that does not yet know how to handle full
WHEREclauses. -
--password[=password],-p[password]The password to use when connecting to the server. If you omit the
passwordvalue following the--passwordor-poption on the command line, you are prompted for one.Specifying a password on the command line should be considered insecure. See Section 5.9.6, “Keeping Your Password Secure”.
-
Display suggestions and ideas for future releases.
-
Show the privilege differences after making changes to the temporary grant tables.
-
Display the release notes.
-
--rhost=host_name,-Hhost_nameConnect to the MySQL server on the given host.
-
Undo the most recent changes to the temporary grant tables.
-
--spassword[=password],-P[password]The password to use when connecting to the server as the superuser. If you omit the
passwordvalue following the--passwordor-poption on the command line, you are prompted for one.Specifying a password on the command line should be considered insecure. See Section 5.9.6, “Keeping Your Password Secure”.
-
--superuser=user_name,-Uuser_nameSpecify the username for connecting as the superuser.
-
Generate reports in table format.
-
--user=user_name,-uuser_nameThe username to use in the access privileges.
-
Display version information and exit.
If your MySQL distribution is installed in some non-standard
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.