栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist

Caused by: java.sql.SQLException: The user specified as a definer (‘skip-grants user’@‘skip-grants host’) does not exist 解释一下

首先这个错误的根本就是在于你账号的访问权限不够所以使得你访问该表的时候会报这个错误,definder 这个关键字是解题的关键,那么我们在创建视图或者表的时候呢例如下图(Navicat)
这样创建是没有什么问题的,但是你填写了definer这个选项的话mysql就会默认可以访问的是这个视图的创建者才能够有权限去访问它,其他的用户没有这个权限。那么反之你要是选择invoker 这个选项的话那么所有的账户都是有权限去访问这个视图的。所以小编碰到的这个就是因为这个没有改过来导致项目小组的小伙伴没办法访问这个视图。

简言之,出现上述这样的错误那么你就要去关注这个用户的权限是不是没有这个权限访问某个表,那么你就要对症下药把这个表的权限赋给这个用户那么这个问题就解决了 最后 附上linux用户授权的执行命令
# use mysql; //进入到mysql使用这个表
# show grants for `你的用户名`; //查看你这个用户当前的所有权限
# grant all  privileges on *.* to 'Zhiwei'@'%' identified by 'Zhiweiwei123.'; 
// *.*  前面一个*表示所有数据库 后面一个是表示所有表 
// % 则表示的是可以进行远程连接也可以本地连接,所有的地址都可以访问,当然这可以指定一个ip地址访问
//给这个用户所有的权限注意这个密码必须是包含大写小写数字和符号,如果说这个用户本身就是不存在的那么系统会自动创建这个用户并给其赋上权限
# flush privileges; //千万不要忘记在这个时候要刷新一下权限不然刚刚的设置不会生效
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325292.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号