数据库

MariaDB 10.4+ 新版本默认初始密码的修改

2020-03-10  本文已影响0人  ___n

最近,很多人问 maradb 的密码修改不了,用以前 set password 的 mysql 命令,报下面的错误

Column 'Password' is not updatable

为什么改不了呢,因为 mysql.user 表不见了,现在它只是 mysql.global_priv 表的一个视图,所以不能修改原来的 mysql.user 表了,而密码是更改为在 authentication_string 字段中存放。

当然,如果你认为将修改密码的语句改为下面语句也是不好使的

UPDATE mysql.user SET authentication_string = PASSWORD('123456') WHERE User = 'root';
# 会报一个大大的错给你
ERROR 1348 (HY000): Column 'authentication_string' is not updatable

这是因为 mariadb 10.4 可以给用户设置多种认证方式了,在初始安装的时候,默认创建了2个默认账号: root,mysql,并默认使用unix_socket模式认证 ,这种模式 root 不需要密码, 也不需要你去设置初始密码。

MariaDB [(none)]> select user,plugin from mysql.user limit 1;
+------+-----------------------+
| User | plugin                |
+------+-----------------------+
| root | unix_socket |
+------+-----------------------+

这样登录 mysql 你就不需要像以前一样 mysql -uroot -p, 而是直接 mysql,只要登陆用户有系统root权限就可以进去。

当然,如果你不想使用这个方式,还是想使用以前的密码登陆,也是支持。

# 先登陆要修改的用户
mysql -uroot
#改认证模式
update mysql.user set plugin = 'mysql_native_password' where user = 'root';
# 然后再
set password = password('123456')

这样就把root的密码改为了 123456

上一篇 下一篇

猜你喜欢

热点阅读