ERROR 1356 (HY000): View ‘mysql.user‘ references invalid table(s) or column(s) or function(s) or def

部署某开源应用软件的体验环境,急需一个mysql数据库支持。对比了下mysql和mariadb,选择了mariadb。原因是以前用这个数据库挺顺手,兼容mysql,主要原因是它的二进制安装包特别小,下载快。选择了长期支持稳定版本MariaDB Server 10.11.6二进制压缩包安装。操作系统是ubuntu16.04。安装文档参考。一通操作后安装好了。接下来就是设置下账号密码,然后应用就可以连接使用了。我是用mysql兼容的方式安装。安装完成后默认有两个用户root和mysql。都是不设置密码的。
如果按照我记忆中以前的做法,给修改这两账号密码只需要 bin/mysql -uroot -p 登录进去

MariaDB [(none)]> select user();

在这里插入图片描述

MariaDB [(none)]> use mysql;
MariaDB [mysql]> select user, password from user;
update user set password = password('123456') where user in ('root','mysql');

在这里插入图片描述

这几行命令完成,root用户就有密码了,数据库这事就结束了。
但是报错了
在这里插入图片描述
提示很明白,mysql.user是个视图不是表。第一反应是叹口气,唉,静下心来查文档吧。
1、https://mariadb.com/kb/en/authentication-from-mariadb-10-4/
这个是原因文档,
2、https://mariadb.com/kb/en/alter-user/
这个是解决方案文档。
文档比较零碎,找出来方便查看。登录后的修改密码的方案是使用alter user,看了下mysql的教程也是这么干的。

解决命令:

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

记录到这里