一、问题出现
在安装完 MySQL 后,使用 SHOW TABLES 时,发现一直出现 。
在网上搜索,给的答案都是用 mysql_upgrade ,事实上 mysql_upgrade 功能在 mysql8.0 之后版本已经停用了,我的mysql安装版本刚好是8.0,因此上述方法无效。在经过多方查找后,找到如下解决方案。
mysql> use goblog
Database changed
mysql> show tables;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
二、解决方案
给 mysql.infoschema 用户添加权限。
MySQL8.0 之后,不支持使用 grant 时隐式地创建用户,必须先创建用户,再授权。代码如下:
mysql> create user 'mysql.infoschema'@'%' identified by '密码';
Query OK, 0 rows affected (0.01 sec)
mysql> create user 'mysql.infoschema'@'%' identified by '密码';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on *.* to 'mysql.infoschema'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
再次输入命令’show databases’,正常!!!