我有一个 nodejs 服务,它试图在 mysql 数据库上运行存储过程,但调用失败并显示execute command denied to user
.
同一个服务可以成功执行 simple SELECT
s 并毫无问题地返回数据。
如果我使用 mysql 命令行实用程序连接到 mysql 数据库,并以 nodejs 服务配置为使用的同一用户身份登录,则存储过程可以正常工作。
为什么远程运行存储过程失败,但在本地运行它?
编辑
按照下面的建议,这是show grants
从命令行访问 mysql 时运行的结果:
这是我通过我的节点应用程序运行它时的结果:
{"Grants for myuser@%":"GRANT USAGE ON *.* TO `myuser`@`%` IDENTIFIED BY PASSWORD '*blahblahblahblahblahblah'"}
我不明白为什么GRANT SELECT, INSERT
etc 已经消失了,因为我认为使用%
通配符意味着它不应该关心它认为myuser
来自哪个域。