mysql和mariadb无密码可登录解决

网上大部分说查看并修改mysql.user表中plugin字段中类型。

SELECT host,user,plugin FROM mysql.user;
+-----------+-------------+-----------------------+
| Host      | User        | plugin                |
+-----------+-------------+-----------------------+
| localhost | mariadb.sys | mysql_native_password |
| localhost | root        | mysql_native_password |
| localhost | mysql       | mysql_native_password |
| %         | admin       | mysql_native_password |
+-----------+-------------+-----------------------+
4 rows in set (0.001 sec)

但在msyql8和mariadb10以后mysql.user 表已不起作用了,真正的表是 mysql.global_priv 表,查询后我们发现root用户是unix_socker类型,这就解释了为啥总能直接登陆的问题

SELECT * FROM mysql.global_priv;
+-----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Host      | User        | Priv                                                                                                                                                                         |
+-----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| localhost | mariadb.sys | {"access":0,"plugin":"mysql_native_password","authentication_string":"","account_locked":true,"password_last_changed":0}                                                     |
| localhost | root        | {"access":1073741823,"plugin":"unix_socker","authentication_string":"*9BB091BAC7B5D8BA7D97E9F27E9DA6BD8F672AA0","auth_or":[{}],"password_last_changed":1646905522} |
| localhost | mysql       | {"access":1073741823,"plugin":"mysql_native_password","authentication_string":"invalid","auth_or":[{},{"plugin":"unix_socket"}]}                                             |
| %         | admin       | {"access":0,"plugin":"mysql_native_password","authentication_string":"*A8434702DCF014A5059FBCDC14A055CDE2D4540E","password_last_changed":1646905696}                         |
+-----------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.000 sec)

而解决方法很简单,只要输入如下命令即可

ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("要设置的密码")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值