我是靠谱客的博主 害怕老师,最近开发中收集的这篇文章主要介绍The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not existCaused by: java.sql.SQLException: 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; //千万不要忘记在这个时候要刷新一下权限不然刚刚的设置不会生效

最后

以上就是害怕老师为你收集整理的The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not existCaused by: java.sql.SQLException: The user specified as a definer (‘skip-grants user’@‘skip-grants host’) does not exist解释一下最后的全部内容,希望文章能够帮你解决The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not existCaused by: java.sql.SQLException: The user specified as a definer (‘skip-grants user’@‘skip-grants host’) does not exist解释一下最后所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部