MySql存储过程调用错误
Posted
技术标签:
【中文标题】MySql存储过程调用错误【英文标题】:MySql stored procedure call error 【发布时间】:2012-12-11 20:21:40 【问题描述】:从 phpMyAdmin 调用 mysql 存储过程时出现以下错误
#1045 - Access denied for user 'root'@'localhost' (using password: NO)
我正在使用
call get_ledger_name(2007);
调用过程
我已经尝试更改root密码,创建一个新用户,但错误仍然存在。
【问题讨论】:
您需要确保 (a) 用户名/密码正确且 (b) 该用户具有对数据库和表的必要访问权限。但是如果 root 并且没有密码连接,我会非常担心你的网络安全! @Andrew : 我已授予所有权限 @NitinKabra 你确定你输入的用户名和密码正确吗? 好的,ta。建议您添加(到问题中)您正在使用的 EXACT 命令 @JW。是的,用户名和密码是正确的.. 【参考方案1】:其实你可以重设root
密码。
但请记住,不建议使用没有密码的root
帐户。
【讨论】:
【参考方案2】:使用 DEFINER=root@localhost 更改存储过程,然后调用此 SP。它会运行。
试试这个:
DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_test`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test`()
BEGIN
/* Your Code Snippet */
/* Your Code Snippet */
/* Your Code Snippet */
END$$
DELIMITER ;
【讨论】:
你改过密码没问题,但是这个问题不需要重设密码。以上是关于MySql存储过程调用错误的主要内容,如果未能解决你的问题,请参考以下文章
JAVA调用mysql存储过程noAccessToProcedureBodies错误
没有参数的MySql存储过程调用在SqlFiddle上返回错误