我最近安装了MySQL,似乎在安装后我必须重置密码。它不让我做别的事。

现在我已经用通常的方式重置了密码:

update user set password = password('XXX') where user = root;

(顺便说一句:我花了很长时间才发现MySQL出于某种奇怪的原因将字段“password”重命名为“authentication_string”。我对这样的变化感到很不安。

不幸的是,似乎我需要改变密码不同的方式,我不知道。也许在座有人已经遇到过这个问题了?


当前回答

在version 14.14 Distrib 5.7.19, macos10.12 (x86_64)上,我以以下方式登录: mysql -uroot -p然后在安装时输入mysql生成的密码。然后. .

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

例子:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; 查询OK, 0行受影响(0.00秒) mysql >退出 再见 $ mysql -uroot -p

你可以输入" Ab1234 "

其他回答

这是适合我的方法。

Mysql >显示数据库;

错误1820 (HY000):在执行此语句之前,您必须使用ALTER USER语句重置密码。

Mysql >卸载插件validate_password;

错误1820 (HY000):在执行此语句之前,您必须使用ALTER USER语句重置密码。

Mysql > alter user 'root'@'localhost' identified by 'root'

查询OK, 0行受影响(0.01秒)

Mysql >刷新权限;

查询OK, 0行受影响(0.03秒)

UPDATE user SET authentication_string=PASSWORD("MyPassWord") WHERE user ='root'; 错误1064(42000):你有一个错误的SQL语法;查看MySQL服务器版本对应的手册,在第一行'("MyPassWord") WHERE User='root "附近使用正确的语法

解决与

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

以下网站参考资料

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

我也有同样的问题。拒绝访问。

所以我的解是,

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

你可以看到插入的列名

我把插件从 Unix_socket ->到mysql_native_password

输入这个

mysql > use mysql;
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;

完成了。 我的版本是10.1.48 MariaDB ubuntu 18

在version 14.14 Distrib 5.7.19, macos10.12 (x86_64)上,我以以下方式登录: mysql -uroot -p然后在安装时输入mysql生成的密码。然后. .

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

例子:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; 查询OK, 0行受影响(0.00秒) mysql >退出 再见 $ mysql -uroot -p

你可以输入" Ab1234 "

Mysql 5.7.24先登录root

第一步:从日志中获取密码

 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

第二步:和他一起登录mysql

mysql -uroot -p'wHkJHUxeR4)w'

第三步:你输入新的根密码

SET PASSWORD = PASSWORD('xxxxx');

你会得到错误1819 (HY000):您的密码不满足当前的策略要求

如何解决?

SET GLOBAL validate_password_policy=LOW;

SET PASSWORD = PASSWORD('xxxxx');