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

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

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

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

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


当前回答

记住版本5.7.23及以上-用户表没有列密码,而是认证字符串,所以下面的工作,而重置用户的密码。

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

其他回答

要更改用户密码:

首先,以root登录 $ sudo mysql 修改用户密码 修改用户名:USER @ localhost

MySQL 5.7。X你需要切换到本地密码才能改变它,比如:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

也许可以试试?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');

or

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

这取决于您使用的访问。

(并且不确定是否应该更改自己的字段名…)

https://dev.mysql.com/doc/refman/5.0/en/set-password.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

这是适合我的方法。

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秒)