记一次触发器定义者不同导致的sql异常TRIGGER command denied to user 'XXX' @'%' for table '...

记一次触发器定义者不同导致的sql异常

触发器:在执行某一类型的sql后触发其他已经提前写好的sql

先上图
记一次触发器定义者不同导致的sql异常TRIGGER command denied to user 'XXX' @'%' for table '...
这是打印出的错误日志信息

图中weidong_rwser_test_temp为数据库连接账号,但是在代码中的配置文件又没有写这个配置账号,外部挂载的配置文件也没有配置这个账号,使我产生了疑问,为什么会有这个账号蹦跶出来

查看详细异常信息后:如图
记一次触发器定义者不同导致的sql异常TRIGGER command denied to user 'XXX' @'%' for table '...
发现有一句

TRIGGER command denied to user ‘weidong_rwser_test_temp’ @’%’ for table 'b_product’

意思为 触发器的账号weidong_rwser_test_temp没有权限去操作b_product这张表

照理说应该给这个账号增加权限,但是我想搞清楚为啥会有这个账号出来

当我打开表中的触发器后发现它的定义者是weidong_rwser_test_temp这个账户,而我代码中连接数据库不是用的这个账户,并且这个账户只有读的权限而没有写的权限

原因:
由于触发器的定义者(weidong_rwser_test_temp)与数据库配置(userAdmin)不同导致的无法执行触发器而导致的异常,并且这个账户只有读的权限而没有写的权限

解决:
.最终,我把原有的触发器删掉之后重新用配置文件中的账户新建触发器才解决了问题