MYSQL定义者发行

问题描述 投票:0回答:1

存在一个非常奇怪的问题。我有一个过程,定义器名为admin。

[在某些情况下,我们必须删除用户“ dbadlys”。因此,为了做到这一点,我们在删除帐户dbadlys之前用新帐户“ admin @%”更新了mysql.proc表,并且也进行了刷新特权。

我还从information_schema.routines中验证了定义者名称,我看到新的定义者名称现在为admin @%。

问题:

即使在代码调用过程时定义器名称现在已更新为新名称,它仍使用旧的定义器名称dbadlys并出现以下错误:

指定为定义者的用户不存在

[进一步调查后,我发现重新连接实例时没有错误,但是,如果我们更改定义器名称并尝试再次执行该过程,则它不会反映出来。

我的问题:

  1. 在这种情况下,我还有其他需要做的事情吗?
  2. 如果没有什么遗漏,那么应用程序有没有办法看到更改?
  3. 我应该重新启动应用程序服务器吗?
mysql mariadb rds
1个回答
0
投票

如果您具有dba特权,请尝试在不使用定义程序的情况下重新创建SP。

定义器是可选的,除非您有非常特殊的需要,否则不需要使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.