MySQL-拒绝用户“root”@“localhost”访问(使用密码:是)

MySQL-拒绝用户“root”@“localhost”访问(使用密码:是)

我绞尽脑汁想弄明白为什么每次我在 OSX 上全新安装 mysql 并导入数据库时​​,我重新启动 mysql 实例时都会提示消息:拒绝用户“root”@“localhost”访问(使用密码:是)。我将密码保留为默认的 root,这真是令人沮丧。我尽了最大努力确保没有其他 mysql 实例正在运行。活动监视器报告没有其他 mysql 实例,搜索 pid 时也没有出现其他实例。有人知道发生了什么吗?

答案1

当您导入包含 MySQL 数据库本身的 SQL 表时,可能会发生此错误,该数据库包含 MySQL 本身使用的底层架构,这可能会在尝试进入数据库时​​导致严重问题。确保您导入的 SQL 转储仅包含您希望导入的数据库,仅此而已。

答案2

在下列情况下可能会发生此错误:

  1. 使用错误的密码。由于您提到您已将密码默认为 root,请检查您是否已打开 CAPS 锁定。

  2. 如果您在选项文件中指定了错误的密码,则可能会发生这种情况。尝试使用以下方式登录:

    mysqladmin --no-defaults -u root -p pass
    
  3. 您可能必须授予 root 访问权限。

    • 停止 MySQL:

      /etc/init.d/mysql stop
      
    • 启动 MYSQL 跳过授权:

      /usr/sbin/mysqld --skip-grant-tables --skip-networking &
      
    • 登录:

      mysql -u root
      
    • 刷新权限:

      FLUSH PRIVILEGES;
      
    • 更新密码:

      SET PASSWORD FOR root@'localhost' = PASSWORD('password');
      UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
      

相关内容