The user specified as a definer ('monitor'@'%') does not exist



A Database Error Occurred

Error Number: 1449

The user specified as a definer ('monitor'@'%') does not exist

select * from bi_coupon_urlfailrate

Filename: /usr/local/webdata/monitor/models/coupon/coupon_status.php

Line Number: 41



http://blog.sina.com.cn/s/blog_5376c719010178z1.html

关于视图的特殊问题:


mysql修改用户名后view不能用的问题

 :


一般来说mysql用户修改用户名或权限的话,原因有几条,在mysql库的user表和db表中,会修改相关的字段。

一般情况,对于赋权语句grant ... to somedb.*来说不会遇到什么问题,唯一的例外在存储过程和视图中,如果建视图的语句仅仅是create view ...,那么一旦修改了用户名,并且重新赋权后,view是不能访问的,提示没有权限,原因如下:用create view创建视图的时候,mysql会用默认用户创建该视图,权限也只赋给创建视图的用户,而修改用户后,视图上的权限不会随着grant ...而变化,一个简单的办法是重建视图,另一个办法是在建视图的时候,加上SQL SECURITY INVOKER, 此时权限是按照访问用户来判断的。具体使用方法参见mysql手册的create view部分(13章)。




The user specified as a definer ('monitor'@'%') does not exist_第1张图片

因为这两个视图是从其他数据库import进来的,所以估计是带着原来的数据库权限进来的,所以我也没有太深究,直接将原来的两个视图重新在现在的数据库里create一次就行了~~。



可以使用:show create view bi_coupon_urlfailrate_bak ,来查看创建视图时的情况,这里也有视图的权限所有者。

你可能感兴趣的:(The user specified as a definer ('monitor'@'%') does not exist)