问题
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:
- stop your MySQL server.
start your MySQL server with the
--skip-grant-tablesoption. It allows you to connect to the server without a password./path/to/mysqld --skip-grant-tables &connect to your server using the mysql client:
mysqlchange the root password (replace NewPassord by what you want):
UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';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