mysql 1726错误

我遇到的问题是root用户莫名其妙的不能登录了。在别人帮忙下,无密码登录,再修改密码,结果修改失败,如图

img


报1726错误,怎么解决?

兄嘚 应该是兼容问题 , 如有帮助给个采纳谢谢
操作如下
mysql -uroot -p敲回车,不需要密码再敲回车

select host, user, authentication_string, plugin from user;

host: 允许用户登录的ip‘位置’%表示可以远程;

也可以参考一下 https://blog.51cto.com/liufengleo/2519310
user:当前数据库的用户名;

authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin: 密码加密方式;

先让root密码置空

use mysql;

update user set authentication_string='' where user='root';

/etc/my.cnf[mysqld]skip-grant-tables注释掉

重启mysqlsystemctl restart mysql

命令行登录,然后通过ALTER user 'root'@'localhost' IDENTIFIED BY 'allen1qaz!QAZ'即可修改密码

但不是密码问题,盲猜是兼容问题,通过mysql_upgrade -u root -p命令即ok

MyISAM存储引擎没有这张表,使用show tables看下有哪些表,或者使用其他命令比如grant授权语句试下

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/343475
  • 这篇博客也不错, 你可以看下mysql 配置只要是root用户+密码,在任何主机上都能登录
  • 除此之外, 这篇博客: Mysql 8.0 密码管理问题,root登录修改默认密码,root无需密码或任何密码都可以登录原因及解决方法中的 三:root无需密码,或任何密码都可以登录原因及解决方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 虽然改了密码,但是发现root登录仍无需登录密码,或者加参数-p输入密码时,任何密码都可以进入。

    原因:查看用户插件信息

    select user,host,plugin from mysql.user;
    

    显示root插件为auth_socket,这种插件无需密码,所以设置任何密码都无效。

    mysql> select user,host,plugin from mysql.user;
    +------------------+-----------+-----------------------+
    | user             | host      | plugin                |
    +------------------+-----------+-----------------------+
    | debian-sys-maint | localhost | caching_sha2_password |
    | mysql.infoschema | localhost | caching_sha2_password |
    | mysql.session    | localhost | caching_sha2_password |
    | mysql.sys        | localhost | caching_sha2_password |
    | root             | localhost | auth_socket           |
    +------------------+-----------+-----------------------+
    5 rows in set (0.00 sec)
    

    更改插件为mysql_native_password 或者caching_sha2_password

    use mysql;
    UPDATE user SET plugin='caching_sha2_password' WHERE User='root';
    FLUSH PRIVILEGES;
    

    更改完成后,需重新设置root密码生效,修改方法同上。修改后,登录需要输入正确密码

    注: 为了提供更安全的密码加密,MySQL8.0的首选默认密码认证插件是caching_sha2_password,而不是mysql_native_password,根据自己需求选择插件

  • 您还可以看一下 刘运强老师的MySQL数据库从入门到实战课课程中的 忘记root用户密码的解决方法小节, 巩固相关知识点

错误代码 1726 表示密码不符合要求。根据你提供的截图,可以看到密码设置为了 123456,这个密码可能不符合密码策略的要求,导致密码修改失败。
在 Windows 中,密码策略是由组策略设置来控制的。如果密码不符合密码策略的要求,就会导致密码修改失败。你可以检查一下组策略设置,看看密码策略的要求是什么。
具体来说,可以按照以下步骤检查密码策略设置:
1、打开组策略编辑器。可以按下 Win + R 键,然后输入 gpedit.msc 命令来打开。
2、在组策略编辑器中,依次展开以下路径:计算机配置 -> Windows 设置 -> 安全设置 -> 账户策略 -> 密码策略。
3、在右侧窗口中,可以看到密码策略的设置。其中,最常见的要求包括密码长度、复杂性、历史记录等。你可以根据实际情况修改这些设置,以满足你的密码要求。
修改完成后,可以尝试重新修改密码,看看是否能够成功。
另外,如果你是在使用 Active Directory 管理用户和计算机,那么密码策略的设置可能由域策略控制,而不是本地组策略。你需要在域控制器上修改域策略设置,才能生效。

mysql 版本是多少,我看截图怎么还在用MyISAM 存储引擎,现在的数据库都是默认inodb了啊

用了3天,这个问题终于解决了!谢谢各位。我要总结一下经验,以后再遇到这种情况,在反出来看看。