【问题标题】:MySQL 5.7.20 can't set a root passwordMySQL 5.7.20 无法设置root密码
【发布时间】:2025-12-03 23:00:02
【问题描述】:

全新安装 mysql 5.7 后,我的 root pw 出现问题。

我正在尝试使用 mysqld_safe --skip-grant-tables & 启动 mysql 并进入 mysql mysql -u root

并尝试设置密码

root@localhost [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

root@localhost [(none)]> ALTER USER 'root@localhost' IDENTIFIED BY 'password';

我得到了这个错误;

ERROR 1396 (HY000): Operation ALTER USER failed for 'root@localhost'@'%'

我也试过这种方法;

root@localhost [mysql]> update user set authentication_string=password('password') where user='root';
Query OK, 0 rows affected, 1 (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 1

两者都不起作用请帮忙..

【问题讨论】:

    标签: mysql passwords root


    【解决方案1】:

    试试这个(用户和主机必须用''分隔):

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

    如果您使用 DML 更改了权限:

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

    你必须跑:

    FLUSH PRIVILEGES;
    

    【讨论】: