我连接到一个远程mysql服务器,但在一些错误的连接(由于自动化)后,我被阻止从服务器。我试图疏通自己。
提示建议我执行mysqladin flush-hosts
# This was done locally
$ mysql -h remote_host -u user_name
ERROR 1129 (HY000): Host 'remote_host' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
$ mysqladmin flush-hosts
mysqladmin: refresh failed; error: 'Access denied; you need (at least one of) the RELOAD privilege(s) for this operation'
我收到此消息:
mysqladmin: refresh failed; error: 'Access denied; you need (at least one of) the RELOAD privilege(s) for this operation'
因为我对mysql和mysql-workbench很陌生,所以我不确定如何解决这个问题。
我还试图通过SSH进入remote_host
并输入命令mysqladmin flush-hosts
,但我收到错误:
error: 'Access denied for user 'user1'@'localhost' (using password: NO)'
答案 0 :(得分:1)
Google中关于“mysql RELOAD权限”的第二个链接 - FLUSH syntax:
要执行FLUSH,您必须具有RELOAD权限。
突出显示的链接显示:
RELOAD权限允许使用FLUSH语句。它也是 启用等同于FLUSH操作的mysqladmin命令:< ...>
而且,在该页面上,又有--user
option。
答案 1 :(得分:1)
显然,用户只能是本地(与一个数据库相关联)或全局(与所有数据库相关联)。如果您需要您的用户帐户将数据库刷新到其关联的数据文件夹或目录(例如,以便您可以保存或恢复数据库),那么我的实验表明您不能让您的用户成为本地用户。它必须是全局的,但您可以选择仅启用数据操作权限和 RELOAD 来刷新表。
在 MySQL 中似乎没有办法让严格的本地数据库用户只能刷新自己数据库的表。