Stuck with Access Denied for user 'root'@'localhost' - Terminal, Mac

若如初见. 提交于 2019-12-17 20:47:38

问题


I am stuck when trying to access mysql. It's my first time so please be patient with me.

Initially I was try to set up Ruby and Rails and everything worked perfrectly expect access denied when connecting to the server, SO I ran this command.

mysql -uroot -p

I've tried various passwords including leaving it blank and get this error.

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

I am assuming I need to reset the password for root user but I just can't seem to get it to work.


回答1:


One method:

  1. stop your MySQL server.
  2. start your MySQL server with the --skip-grant-tables option. It allows you to connect to the server without a password.

    /path/to/mysqld --skip-grant-tables &
    
  3. connect to your server using the mysql client:

    mysql
    
  4. change the root password (replace NewPassord by what you want):

    UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';
    
  5. restart yout MySQL server.

There are others ways to reset the MySQL root password: http://dev.mysql.com/doc/refman/5.6/en/resetting-permissions.html




回答2:


I had a similar issue and this worked like a charm -

Later versions of mysql implement a newer authentication scheme, not all libraries are up to date with this. You can revert to classic authentication by adding the following entry into your 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

Simply add the following in /private/etc/my.cnf

# Only allow connections from localhost
bind-address = 127.0.0.1

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




回答3:


@Muur the last step did not worked for me(mysql Ver 14.14 Distrib 5.7.19) i had to change query to update user set authentication_string=password('1111') where user='root'; update user set password_expired=N where user='root';



来源:https://stackoverflow.com/questions/25896082/stuck-with-access-denied-for-user-rootlocalhost-terminal-mac

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!