MySQL 使用 show tables 时出现 ERROR 1449 (HY000) 问题

Ubuntu20 安装 MySQL 时遇到的问题:

一、问题出现

在安装完 MySQL 后,使用 SHOW TABLES 时,发现一直出现 ERROR 1449 (HY000):The user specified as a definer (‘mysql.infoschema‘@’localhost’) does not exist 。具体去网上搜索,给的答案都是用 mysql_upgrade ,事实上 mysql_upgrade 功能在 mysql8.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 tables ,就能出现结果了。

mysql> show tables;
+------------------+
| Tables_in_goblog |
+------------------+
| articles         |
+------------------+
1 row in set (0.01 sec)

————————————————
原文作者:cornflower
转自链接:https://learnku.com/articles/51780
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

上一篇:手把手教你修改pcduino系统默认的音频输出


下一篇:比特币ETF审批再度被SEC推迟?