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密码。

How to Reset the Root Password

但请记住,不建议使用没有密码的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 存储过程时出现数据包乱序错误

没有参数的MySql存储过程调用在SqlFiddle上返回错误

mysql 存储过程提示错误!!求高人解答

在SQL Server2005中,下面调用存储过程的语句错误的是:

关于mysql 的存储过程