ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'

在处理这个问题(https://www.cnblogs.com/abclife/p/11038660.html)的时候,开发同学在最后修改视图的definer的时候又遇到了以下的报错信息:

ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'

 

数据库版本是:mysql 5.7.25。让他执行以下操作:

>select user();
>select current_user() from dual;
>select host,user from mysql.user where user='root';

>show grants for root@'localhost';
>show grants for root@'%';

>select * from mysql.user where user='root';

  

反馈说用户和权限都没啥问题,然后再次让其把执行报错的现象截图发过来:

root@localhost:information_schema 11:16:24>alter definer=`root`@`%` view <view_name> as select  ...
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'

 

可以看到,它是在information_schema数据库下执行,切换到视图真正所在的数据库再次执行命令就可以正确执行了。 

 

 因为information_schema是一个虚拟的数据库,里面的表其实都是视图。其实在导入数据的时候,也没有必要将information_schema导一遍 。 

 

转载于:https://www.cnblogs.com/abclife/p/11038750.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值