对于用户&root;' @' localhost'而拒绝拒绝访问权限 - 终端,Mac

时间:2014-09-17 16:46:41

标签: mysql terminal

我在尝试访问mysql时遇到困难。这是我的第一次,所以请耐心等待我。

最初我尝试设置Ruby和Rails,并且在连接到服务器时,一切都正常工作,期望访问被拒绝,所以我运行了这个命令。

mysql -uroot -p

我尝试了各种密码,包括将其留空并收到此错误。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我假设我需要重置root用户的密码,但我似乎无法让它工作。

3 个答案:

答案 0 :(得分:13)

一种方法:

  1. 停止你的MySQL服务器。
  2. 使用--skip-grant-tables选项启动MySQL服务器。它允许您在没有密码的情况下连接到服务器。

    /path/to/mysqld --skip-grant-tables &
    
  3. 使用mysql客户端连接到您的服务器:

    mysql
    
  4. 更改root密码(根据需要替换 NewPassord ):

    UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';
    
  5. 重新启动MySQL服务器。

  6. 还有其他方法可以重置MySQL root密码: http://dev.mysql.com/doc/refman/5.6/en/resetting-permissions.html

答案 1 :(得分:0)

@Muur最后一步对我不起作用(mysql Ver 14.14 Distrib 5.7.19)我不得不将查询更改为update user set authentication_string=password('1111') where user='root'; update user set password_expired=N where user='root';

答案 2 :(得分:0)

我遇到了类似的问题,这就像一个魅力-

更高版本的mysql实现了更新的身份验证方案,并非所有库都与此保持一致。通过将以下条目添加到my.cnf中,您可以恢复为经典身份验证

[mysqld]

# Only allow connections from localhost
bind-address = 127.0.0.1

# Some libraries not compatible with latest authentication scheme as per the SO article [1].
default-authentication-plugin=mysql_native_password

只需在/private/etc/my.cnf中添加以下内容

#仅允许来自本地主机的连接
绑定地址= 127.0.0.1

参考:https://www.reddit.com/r/mysql/comments/ae7rf4/access_denied_for_user_rootlocalhost_mac_os/