MySQL root 问题(root 用户拒绝访问)

Mat*_*ndi 5 mysql permissions root

我的 MySQL (5.5) root 用户遇到了一些非常奇怪的问题。我试图允许外部主机访问 root 用户,但似乎我的 root@localhost 没有对本地数据库的“GRANT OPTION”!我认为此时的问题是由于我认为我有两个 root@localhost 用户,两者都有不同的授权规则,但我不知道如何重新安装。

我已经尝试删除 root 用户并重新创建它(我认为),重置 root 用户密码(修改 mysql 数据库本身)

我无法使用我一直指定的密码进入 root 帐户,而是使用备用密码,我什至不知道我是怎么得到的......这个备用用户似乎没有完整root 权限,但仍称为 root。

--下面发布的解决方案--

Mir*_*ici 6

您可以在禁用身份验证的情况下启动 MySQL。从那里您可以创建/删除 MySQL 的管理帐户。

您可以在 MySQL 文档中找到详细信息:http : //dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

  1. 关闭 MySQL

  2. 使用以下命令启动 MySQL: mysqld --skip-grant-tables --skip-networking

  3. 在 mysql 中运行:

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    
    Run Code Online (Sandbox Code Playgroud)

    对于较新的 MySQL 版本

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    GRANT ALL PRIVILEGES ON \*.\* TO 'root'@'localhost' WITH GRANT OPTION;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 关闭 MySQL

  5. 像往常一样启动 MySQL。


Mat*_*ndi 2

找到了解决方案——这是由于将 MySQL 从 MySQL 5.1 更新到 MySQL 5.5 并随之移动身份验证模式(MySQL 数据库本身)引起的。由于此模式有核心更新,因此在 5.5 数据库中使用它根本无法工作,从而导致两个主要错误: 删除 root Mysql 用户后无法授予权限

  • 这不是解决方案,而是原因。如何修复它? (7认同)