NetCore MySql The user specified as a definer (‘admin‘@‘%‘) does not exist

       由于项目在本地局域网内开发使用,有时候需要对外部署显示,所以将项目迁移至外网服务器中,在外网服务器中安装mysql(8.x)数据库、iis等,将服务端发布至iis,导入数据库相关数据表、视图、函数等结构,修改项目相关配置文件,开始测试项目,请求接口过程中有部分接口提示:

"message": "The user specified as a definer ('admin'@'%') does not exist"

这是什么鬼?于是开始查找问题原因,搜索一些资料都是说权限不够,查了下用户权限:

基础权限增删改查都有,于是开放数据库外网端口,本地连接代码测试,断点跟踪一切正常,部分接口调用始终提示:

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

开始一直在代码里找原因,一直没找出来具体代码问题。

       经过静静之后😀,是不是数据库的问题,马上开始打印sql在数据库执行,结果数据库也是同样的提示,开始使用SELECT查询关联中的单个表,果然在一个视图中提示了这个错误:

原来创建视图的定义者不是admin用户,终于找到问题原因了,将视图脚本导出,重新再外网平台数据库执行一下,果然OK了。 

在创建数据库用户时尽可能保持一致,避免这种问题出现,折腾了小半天,喝杯咖啡缓缓(●'◡'●)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值