概述
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解释一下最后所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复