第8章:客户端和实用工具程序 / 8.4. mysqlaccess:用于检查访问权限的客户端

mysqlaccessYves CarlierMySQL分发提供的一个诊断工具。它检查访问权限的主机名、用户名和数据库组合。请注意 mysqlaccess检查只使用userdbhost表的访问。它不检查在tables_privcolumns_privprocs_priv表中指定的表、列或者程序的权限。

调用mysqlaccess的方法:

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

mysqlaccess理解下面的选项:

·         ---help-

显示帮助消息并退出。

·         --brief-b

生成单行表格式的报告。

·         --commit

从临时表将新访问权限复制到原授权表。必须为新的权限刷新授权表以使其生效。(例如,执行mysqladmin RELOAD命令)

·         --copy

从原授权表重载临时授权表。

·         --db=db_name-d db_name

指定数据库名。

·         ---debug=N

指定调试级别。N可以为从03的一个整数。

·         --host=host_name-h host_name

在访问权限中使用的主机名。

·         --howto

显示一些例子显示如何使用mysqlaccess

·         --old_server

假定服务器是一个旧版本的MySQL服务器(MySQL 3.21之前),还不知道如何处理全WHERE子句。

·         --password[=password]-p[password]

当连接服务器时使用的密码。如果你在命令行中在--password-p选项后面省略 密码值,将提示你输入密码。

·         --plan

显示将来发布的建议和思想。

·         --preview

更改临时授权表后显示权限的不同。

·         --relnotes

显示发布注解。

·         --rhost=host_name-H host_name

连接给定主机的MySQL服务器。

·         --rollback

取消对临时授权表的最新的更改。

·         --spassword[=password]-P[password]

super用户连接服务器时使用的密码。如果在命令行中在--password-p选项后面省略了 密码值,将提示你输入密码。

·         --superuser=user_name-U user_name

指定以super用户连接时的用户名。

·         --tables-t

生成表格式的报告。

·         --user=user_name-u user_name

在访问权限中使用的主机名。

·         --version-v

显示版本信息并退出。

如果你的MySQL分发安装在某个非标准位置,必须进入mysqlaccess期望找到mysql客户的目录。编辑大约在18行处的mysqlaccess脚本。搜索类似下面的一行:

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

将路径更改为mysql实际在系统中保存的位置。如果不这样做,当运行mysqlaccess时会发生Broken pipe错误。