mariadb10.4.17修改密码的坑

一、背景

之前在测试环境上安装了一个mariadb数据库用于测试,今天安全告知说存在弱口令,于是就登录服务器进行修改密码,当时我使用update mysql.user set authentication_string=password('新密码') where user='用户名' 的方式修改,结果报错了。说user不是一个表,是一个视图,这就把我搞懵了,user什么时候

变成了试图?于是查询了下说maradb从10.4+以上版本发生了很大变化,所有用户帐户,密码和全局特权都存储在mysql.global_priv表中。该mysql.user表仍然存在,并且具有与以前完全相同的列集,但是现在它是一个引用该mysql.global_priv表的视图。

二、解决

1、通过mysqladmin命令修改

mysqladmin -h 192.168.70.18 -u root -p password 新密码;  
mysqladmin -u root -p password 新密码;

2、通过set方式修改

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
作者:凉生墨客 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/heruiguo/p/15662496.html