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; //千万不要忘记在这个时候要刷新一下权限不然刚刚的设置不会生效
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聪明不喝牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值