我最近安装了MySQL,安装后似乎必须要重置密码才能进行其他操作。
现在我已经按照通常的方式重置了密码:
update user set password = password('XXX') where user = root;
顺便说一句:我花了很长时间才弄明白MySQL把“密码”字段命名为“authentication_string”的原因。像这样的更改让我感到非常沮丧。
不幸的是,似乎我需要以我不知道的其他方式更改密码。也许这里已经有人遇到过这个问题?
如果这不是您第一次设置密码,请尝试以下方法:
mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
WHERE User='root';
如果您遇到以下错误,很有可能是因为您从未设置过密码:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
要首次设置密码:
mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)
参考资料:https://dev.mysql.com/doc/refman/5.6/en/alter-user.htmlmysql -u root -p
启动 MySQL,请尝试运行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
命令来重置密码。ALTER USER 'root'@'localhost' indentified WITH mysql_native_password BY 'password';
- Steve我在Mac上遇到了同样的问题
首先,以沙盒模式登录mysql
mysql -u <user> -p --connect-expired-password
然后,设置密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXXX');
Query OK, 0 rows affected, 1 warning (0.01 sec)
对我有效~
SET PASSWORD FOR 'root'@'localhost' = 'XXXX';
。 - Arsen Zahray如果您使用的是MySQL 5.7.6或更高版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
如果您使用的是MySQL 5.7.5及以下版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
SET PASSWORD = PASSWORD('my_pass')
对我有效。有人在评论中提到,他们使用更新版本的MySQL时,这个语句也有效。尽管如此,我还是点赞了你的答案,因为你找到了MySQL文档中之前没有人提到的这个特定参考。 - Armfoot在MySQL 5.7.x版本中,您需要切换到本机密码才能更改密码,例如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
UPDATE user SET authentication_string=PASSWORD("MyPassWord") WHERE User='root'; 错误1064(42000):您的SQL语法有误;请检查与您的MySQL服务器版本相对应的手册,以了解在第1行附近使用的正确语法。
使用以下方式解决:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
以下网站提供参考:
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
运行这些:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
然后运行
./mysql -u root
应该登录。现在运行FLUSH privileges;
然后退出MySQL控制台并尝试登录。如果不起作用,请运行以下命令:
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
将xxxxxx更改为您的新密码。然后尝试重新登录。
更新。 请参阅http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html。
这应该解决您的问题。
如果您使用的是Oracle,请尝试以下方法。
ALTER USER username IDENTIFIED BY password
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');
SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');
根据您使用的访问方式而定。
(不确定您是否应更改自己的字段名称...)
使用以下命令修改用户root在本地的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64)
上,我使用以下命令登录:
mysql -uroot -p
,然后输入MySQL安装时生成的密码。然后执行以下命令:例如:
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
$ mysql -uroot -p
mysql-5.7.13-osx10.11-x86_64
。 - GiriB