登录数据库后执行以下命令
mysql> show databases;
报错: ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
解决方案:
1、在Mysql 8.0.16 之前,我们用下面的方案可以解决
mysql -u root -p
Enter password:密码
SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
Enter password:密码
2、MySQL 8.0.16开始 mysql_upgrade 升级程序已经废弃(这里官网有说明)。
1、创建用户:
CREATE USER 'mysql.infoschema'@'%' IDENTIFIED BY 'password';
2、用户授权:
grant all privileges on *.* to 'mysql.infoschema'@'%';
注意:'@'%'这里的含义如下,%表示:授权所有用户
mysql> use mysql
Database changed
mysql> select user,host from user;
+------------------+------+
| user | host |
+------------------+------+
| mysql.infoschema | % |
| root | % |
+------------------+------+
2 rows in set (0.00 sec)
3、刷新授权:
flush privileges;