MySQL调用函数报错:ERROR 1370 (42000): execute command denied to user 'test'@'localhost' for routine 'mydb.myfunc'

在MySQL调用函数报错:

ERROR 1370 (42000): execute command denied to user 'test'@'localhost' for routine 'mydb.myfunc'

从错误可以看出,用户test是没有execute权限。

添加授权

mysql> grant execute on mydb.* to 'test'@'localhost';
mysql> flush privileges;

授权后重新调用函数:

mysql> call myfunc();
ERROR 1370 (42000): execute command denied to user 'test'@'localhost' for routine 'mydb.myfunc'

仍然报错!

原因是对函数授权不能直接授权给数据库,需要授权到function

mysql> grant execute on function mydb.myfunc to 'test'@'localhost';
mysql> flush privileges;

调用成功!

版权声明:著作权归作者所有。

相关推荐

npm报错解决:Error: ENOSPC, write

在Linux使用npm安装mongodb报了ENOSPC的错误,错误信息:# npm install mongodb npm http GET https://registry.npmjs.org/mongodb npm http 200 https://registry.npmjs.org/mongodb

Ruby调用shell脚本总结

Ruby可以使用以下几种方法来执行shell脚本。1、使用反引号``调用shell脚本语法`cmd` 返回命令的结果示例`echo "hello"` 2、内置语法%x( cmd ) 其中%x后面为分隔符,上面使用了(作为分隔符,当遇到收括号即表示命令结束。这些分隔符可以为[,{等。示例%x( echo 'hello' 

MySQL 5.7推荐使用ALTER USER修改密码

MySQL修改用户的密码主要有两种方法:ALTER USER 和SET PASSWORDALTER USER 基本使用ALTER USER testuser IDENTIFIED BY '123456'; 修改当前登录用户ALTER USER USER() IDENTI