对普通的mysql账号,在navicat12上建立的连接,在界面上双击执行函数,报参数不对,
而用root账号连接是执行该函数正常的
错误如下:
Procedure execution failed
Incorrect number of arguments for FUNCTION we_newrs.func_nextval; expected 1, got 0
英文意思是调用function参数的个数错误,需要一个,给0个。
开始还以为是这个账号没执行 execute 权限,授权了好几遍,flush了好几次,都没用
后来,在命令行下,执行: select fun_xxxx('xxx'); 是ok的,才知道这个原来是navicat的问题。
navicat12 执行sql/保存function/procedure,有错误时返回的信息提示错误代码,不提示错误位置。让你的工作难度加大10倍。还不如命令行。
另外权限的变更,要做的两件事
3.1 服务器上记得flush privileges; 让你变更写入权限表
3.2 要重启应用, 对于已经连接到数据库的应用程序,权限变更不会生效。
比如你授权了execute权限,应用程序还是报execute command denied to user xxx
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。