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

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

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

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

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


当前回答

在mysql 5.7.x(复制)中,这个问题可能会发生,因为从用户上的密码不匹配或根用户在主用户上不存在。

例如(以我为例):

我创建了一个实例,修改了根用户的密码,在复制从服务器之前,我删除了根用户。当我做slave实例时,这个警告出现在查询上:(因为我在删除root用户之前修改了master上的密码,并且slave正在从第一个日志中读取,这实际上是一个alter root user语句)

show slave status\G

所以这里有两种解决方案:

可以在主主机和从主机上创建密码相同的root用户 可以在主主机上运行查询;

并重新连接从服务器和主服务器。

其他回答

要更改用户密码:

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

安装mysql工作台和mysql社区服务器后出现问题。在服务器安装期间获得生成的密码。 双击工作台中现有的本地实例会触发一个对话框,我可以在其中设置新密码。

5.7版本。“password”字段已被删除。'authentication_string'替换它

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;

ALTER USER 'root'@'localhost'

用这条线…

在mysql 5.7.x(复制)中,这个问题可能会发生,因为从用户上的密码不匹配或根用户在主用户上不存在。

例如(以我为例):

我创建了一个实例,修改了根用户的密码,在复制从服务器之前,我删除了根用户。当我做slave实例时,这个警告出现在查询上:(因为我在删除root用户之前修改了master上的密码,并且slave正在从第一个日志中读取,这实际上是一个alter root user语句)

show slave status\G

所以这里有两种解决方案:

可以在主主机和从主机上创建密码相同的root用户 可以在主主机上运行查询;

并重新连接从服务器和主服务器。