【发布时间】:2013-05-19 12:38:51
【问题描述】:
我在 fedora 上使用 MySQL 5.5.31,但我无法删除不存在的程序。 使用 root 用户:
- 创建一个新数据库:测试
- 创建一个新用户:test
-
将所有权限授予用户 test 以进行数据库测试
GRANT ALL PRIVILEGES ON test.* TO 'test'@'%' WITH GRANT OPTION; -
有用户测试
CREATE PROCEDURE test.foo() SELECT NOW(); DROP PROCEDURE IF EXISTS test.foo; Query OK, 0 rows affected (0.00 sec) DROP PROCEDURE IF EXISTS test.foo; ERROR 1370 (42000): alter routine command denied to user 'test'@'localhost' for routine 'test.foo'
为什么“如果存在”不起作用?
如果我对 root 用户执行相同操作,一切正常(有警告,但没关系):
-
有用户测试
CREATE PROCEDURE test.foo() SELECT NOW(); DROP PROCEDURE IF EXISTS test.foo; Query OK, 0 rows affected (0.00 sec) DROP PROCEDURE IF EXISTS test.foo; Query OK, 0 rows affected, 1 warning (0.00 sec)
【问题讨论】: