我是整个Mac体验的新手。我最近安装了MySQL,似乎我必须在安装后重置密码。它不会让我做任何其他事情。
现在我已经按照通常的方式重置了密码:
update user set password = password('XXX') where user = root;
(顺便说一下:我花了很长时间才发现MySQL出于某种奇怪的原因将字段'密码'重命名为'authentication_string'。我对此类变化感到非常沮丧。)
不幸的是,我似乎需要以不同的方式更改密码。也许有人在这里遇到过这个问题?
答案 0 :(得分:447)
mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
WHERE User='root';
ERROR 1820(HY000):在执行此语句之前,必须使用ALTER USER语句重置密码。
mysql> SET PASSWORD = PASSWORD('your_new_password');
查询正常,0行受影响,1警告(0.01秒)
这是我找到答案的地方:https://dev.mysql.com/doc/refman/5.6/en/alter-user.html
答案 1 :(得分:106)
如果您使用mysql -u root -p
尝试ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
来源:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
答案 2 :(得分:32)
我在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)
对我有用〜
答案 3 :(得分:12)
如果您使用MySQL 5.7.6及更高版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
如果您使用MySQL 5.7.5及更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
答案 4 :(得分:9)
运行这些:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
然后运行
./mysql -u root
它应该登录。现在运行 FLUSH特权;
然后退出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
答案 5 :(得分:9)
在MySQL 5.7.x上,您需要切换到本机密码才能更改它,例如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
答案 6 :(得分:7)
ALTER USER&#39; root&#39; @&#39; localhost&#39;通过&#39; new_password&#39;;
识别使用此行...
答案 7 :(得分:7)
也许试试?
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');
或
SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');
取决于您使用的访问权限。
(并且不确定你应该更改自己的字段名称......)
答案 8 :(得分:4)
在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
您可以输入'Ab1234'
答案 9 :(得分:4)
UPDATE用户SET authentication_string = PASSWORD(“ MyPassWord”)WHERE User ='root'; 错误1064(42000):您的SQL语法有错误;在第1行的'(“” MyPassWord“)WHERE User ='root'附近使用相应的语法,请查看与您的MySQL服务器版本相对应的手册
解决
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
来自下面站点的引用
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
答案 10 :(得分:2)
这对我有用:
ALTER USER USER()通过&#39; auth_string&#39;;
识别我在这里找到了: http://dev.mysql.com/doc/refman/5.7/en/alter-user.html#alter-user-current
答案 11 :(得分:2)
Mysql 5.7.24获得root首次登录
步骤1:从日志获取密码
grep root@localhost /var/log/mysqld.log
Output
2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w
第2步:与他一起登录mysql
mysql -uroot -p'wHkJHUxeR4)w'
第3步:输入新的root密码
SET PASSWORD = PASSWORD('xxxxx');
您得到ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
如何解决?
运行此 SET GLOBAL validate_password_policy=LOW;
重试 SET PASSWORD = PASSWORD('xxxxx');
答案 12 :(得分:1)
当您使用SET PASSWORD = PASSWORD('your_new_password');
时,它可能会崩溃
(ERROR 1819(HY000):您的密码不符合当前政策 的要求)
。您可以使用SET GLOBAL validate_password_policy=LOW;
来解决问题。
答案 13 :(得分:1)
这是为我工作的方式。
mysql> show databases ;
错误1820(HY000):必须先使用ALTER USER语句重置密码。
mysql> uninstall plugin validate_password;
错误1820(HY000):必须先使用ALTER USER语句重置密码。
mysql> alter user 'root'@'localhost' identified by 'root';
查询正常,受影响的0行(0.01秒)
mysql> flush privileges;
查询确定,受影响的0行(0.03秒)
答案 14 :(得分:1)
。 “密码”字段已删除。 'authentication_string'替换它
use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;
答案 15 :(得分:0)
我安装了mysql workbench和mysql社区服务器后出现了问题。在服务器安装期间生成了密码。 双击工作台中的现有本地实例会触发一个对话框,我可以在其中设置新密码。
答案 16 :(得分:0)
我在mac OS X 10.10.4(优胜美地)也遇到了同样的问题.SET PASSWORD为我工作。更改mysql的密码 - MySQL的&GT; SET PASSWORD = PASSWORD(&#39; your_password&#39;); 查询正常,0行受影响,1警告(0.01秒)
在.bash_profile中设置您的Mysql环境路径变量并添加以下行
export PATH = $ PATH:/ usr / local / mysql / bin,
之后,运行以下命令:source .bash_profile
答案 17 :(得分:0)
1
对我有用。
答案 18 :(得分:0)
请记住版本5.7.23及更高版本-用户表中没有列密码,而是身份验证字符串,因此在为用户重置密码时,下面的方法适用。
update user set authentication_string=password('root') where user='root';
答案 19 :(得分:0)
在 mysql 5.7.x(replication) 中,此问题可能发生,因为从属用户上的密码不匹配或主用户上不存在 root 用户。
例如(就我而言):
我创建了一个实例,更改了 root 的密码,在复制从属之前,我删除了 root 用户。当我创建从属实例时,此警报出现在查询中:(因为我在删除 root 用户之前更改了 master 上的密码,而从属正在从第一个日志中读取,这实际上是一个更改 root 用户语句)
show slave status\G
这里有两种解决方案可以应用:
reset master;
并重新连接从设备到主设备。