我尝试执行此存储过程:
DELIMITER |
DROP PROCEDURE IF EXISTS HelloWorld|
CREATE PROCEDURE HelloWorld()
BEGIN
UPDATE sites_niche SET `short_review` = REPLACE(`short_review`, '’',"'");
END |
DELIMITER ;
然而,它告诉我:
拒绝用户'bestcam728'@'%'访问数据库'bestcamdir_main'
问题是我已登录数据库..该错误阻止我创建存储过程...我该如何克服这个问题? 还有一个无法创建新用户的问题
答案 0 :(得分:3)
运行SHOW GRANTS
命令查看用户'bestcam728'@'%'拥有的所有权限。
授予'bestcam728'@'%'权限以root身份连接,并使用GRANT语句授予您所需的权限。似乎缺少CREATE或CREATE ROUTINE特权。您可以在全局或特定数据库中授予这些权限 -
-- Grant database privileges
GRANT CREATE ON `bestcamdir_main`.* TO 'bestcam728'@'%';
GRANT CREATE ROUTINE ON `bestcamdir_main`.* TO 'bestcam728'@'%';
-- Grant global privileges
GRANT CREATE ON *.* TO 'bestcam728'@'%';
GRANT CREATE ROUTINE ON *.* TO 'bestcam728'@'%';
然后重新连接为'bestcam728'@'%'并尝试再次创建程序。
答案 1 :(得分:1)
检查mysql.db中的权限以及可能的mysql.user。
答案 2 :(得分:0)
使用workbench并以root用户身份登录。然后,您可以为用户授予创建存储过程的正确权限。