【问题标题】:Completely locked out of MySQL!完全锁定在 MySQL 之外!
【发布时间】:2011-06-17 13:52:17
【问题描述】:

我以某种方式设法将自己完全锁定在 WAMP 上的 MySQL 之外。似乎所有用户的所有权限都被拒绝。我可以进入 MySQL 的唯一方法是通过命令提示符但不输入用户。从那里,我真的什么都做不了……所有的特权都被拒绝了。我已尝试更新 root 密码,但无济于事。

我也尝试过完全卸载 WAMP 和 MySQL。卸载 MySQL 后,我删除了其中的数据目录以摆脱那里的所有信息。重新安装WAMP后,问题依旧。

尝试访问 PHPMyAdmin 会导致:

#1045 - Access denied for user 'root'@'localhost' (using password: NO) 

谁能帮忙??

编辑为什么人们投票关闭这篇文章...?

EDIT2 一个狂野的secondary problem 出现了!你想让我做什么?回答还是离开?

【问题讨论】:

  • 使用--skip-grant-tables命令行选项启动mysql服务器绕过用户/密码认证,让你以超级用户权限进入,此时你可以重置root帐户的密码。
  • @Marc 好的,那么我究竟要输入什么才能使用此选项运行它?我试过mysql --skip-grant-tables,结果是unknown option,所以我认为我做错了。
  • 该选项适用于mysql SERVER,而不是命令行客户端。它可能是 mysqld.exe(注意 D)。或类似的东西。您可能必须先关闭服务器,然后才能手动重新运行它。
  • @Marc 我不确定我是否正确解释了您的回复,但我尝试了mysqld --skip-grant-tables 并且命令行没有响应但没有给我错误消息。
  • 我从未在 Windows 上使用过 mysql,但可能服务器正在运行,所以执行该命令,然后打开另一个 shell 并尝试进入客户端(mysql.exe,无 D)和尝试您的授权查询。

标签: php mysql wamp


【解决方案1】:

您需要在命令行中使用mysqladmin 重置root 密码。

mysqladmin password your-new-root-password

可能需要明确指定 root 用户:

mysqladmin -u root password your-new-root-password

也可能有助于从mysqladmin 刷新权限:

mysqladmin flush-privileges

然后您可能需要将所有权限授予 root。不确定这是否有必要。

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'your-new-password';

【讨论】:

  • @Michael 人们不断给我这样的命令......我总是知道他们“不被识别为内部或外部命令”。这些是用于 windows 命令行的,对吧?
  • @Tory 在 Windows 上,您可能需要指定 mysqladmin 的完整路径。也许它类似于C:\Program Files\MySQL\MySQL Server 5.x\bin\mysqladmin?您需要找到它在系统上的安装位置。
  • @Michael 试过这个,Access denied: You need the SUPER privilege for this operation
  • @Tory 尝试在命令行上指定 root 用户。请参阅上面的编辑。
  • @Michael 用-u root 尝试了第二个命令:error: 'Access denied for user 'root'@'localhost' (using password: NO)。我还尝试了第三个命令。 Access denied; you need the RELOAD privilege for this operation'
【解决方案2】:

http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

在尝试重置之前,请确保 mysqld 进程已被终止。尝试按照您在问题中所说的方式登录 mysql 客户端。

【讨论】:

  • 您是第三个链接到该页面的人...我相信监督该页面的任何管理员都已将它们全部删除。无论哪种方式,我都尝试过。
  • 不是管理员 - 是发布答案的人自己删除了答案。
【解决方案3】:

如果完全擦除并重新安装导致相同的问题,则很可能是您的环境中存在问题。

您没有提及您使用的是什么版本的 Windows,但我假设它是 Vista 或更高版本,存在这些愚蠢的用户权限问题。我会检查以确保 mysql 服务用户帐户具有对 mysql 数据目录和文件的读/写访问权限。

要求详细说明:

要检查运行服务的帐户,请打开 services.msc,向下滚动相应的服务,然后查看“登录身份”列(或双击该服务,然后单击“登录”选项卡)。

要检查 MySQL 数据文件和文件夹的权限,请右键单击父文件夹并选择“属性”,然后选择“安全”选项卡(我不确定您是否会在主页上设置安全选项卡,不过 - 你不会在 XP 中)。

如果运行该服务的帐户无法完全控制文件夹及其中的文件,则您需要编辑权限以添加该用户(或更改运行该服务的用户)。

如果所有这些都没有为您指明正确的方向,您应该寻找在 Win7 Home 上安装 WAMP 的详细说明,并确保您按照这些说明进行操作,因为权限等在 Win7 上更像是一个 PITA。甚至可能是 Win7 Home 不允许您将 webserver/sql 服务器作为服务运行,因为 Windows 的家庭版本经常被故意削弱(例如,您不能在 WinXP Home 上运行 IIS,并且文件夹安全权限被隐藏)。

【讨论】:

  • 我使用的是 Windows 7 32 位家庭版。您能否详细说明您的回复的最后一部分?我不知道该怎么做。
  • 在我的原始帖子中为您添加了更多详细信息。
  • 关于 Michael 的关于管理员帐户的 cmets:在 Win XP 及更高版本的家庭版本中,有一个隐藏的管理员帐户,除非您启动到安全模式,否则您无法访问,但系统会使用该帐户。当您右键单击某些内容时,这就是“以管理员身份运行”选项的来源。您可能需要以这种方式运行 WAMP 安装程序才能正确安装 - 彻底检查 WAMP 文档。
【解决方案4】:

我可以通过从命令行运行 mysql_secure_installation 重新获得访问权限。它让我回答了一些 y/n 问题,并允许我(重新)设置根密码。

【讨论】:

    【解决方案5】:

    只是在这个问题上花费了很多时间.. 这么多解决方案都不起作用。最后这对我有用。

    skip-grant-tables重启MySQL,绕过安全,现在可以登录运行了:

    USE mysql;
    CHECK TABLE user;
    REPAIR TABLE user;
    

    显然我已经损坏了用户或其他东西......这解决了它。在此之后,我发现我不再拥有 root 用户。所以我不得不添加以下命令(与skip-grant-tables一起):

    INSERT INTO mysql.user 
    SET user = 'root', 
    host = 'localhost', 
    password = Password('yournewrootpw'), 
    Select_priv = 'Y',
    Insert_priv = 'Y',
    Update_priv = 'Y',
    Delete_priv = 'Y',
    Create_priv = 'Y',
    Drop_priv = 'Y',
    Reload_priv = 'Y',
    Shutdown_priv = 'Y',
    Process_priv = 'Y',
    File_priv = 'Y',
    Grant_priv = 'Y',
    References_priv = 'Y',
    Index_priv = 'Y',
    Alter_priv = 'Y',
    Show_db_priv = 'Y',
    Super_priv = 'Y',
    Create_tmp_table_priv = 'Y',
    Lock_tables_priv = 'Y',
    Execute_priv = 'Y',
    Repl_slave_priv = 'Y',
    Repl_client_priv = 'Y',
    Create_view_priv = 'Y',
    Show_view_priv = 'Y',
    Create_routine_priv = 'Y',
    Alter_routine_priv = 'Y',
    Create_user_priv = 'Y',
    Event_priv = 'Y',
    Trigger_priv = 'Y',
    Create_tablespace_priv = 'Y';
    

    希望这可以为其他人节省大量时间..

    【讨论】:

      猜你喜欢
      • 2013-03-11
      • 2015-01-17
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      相关资源
      最近更新 更多