删除MySQL中不存在的过程
我在fedora上使用MySQL 5.5.31,我很难删除一个不存在的过程。 对于根用户:删除MySQL中不存在的过程,mysql,sql-drop,Mysql,Sql Drop,我在fedora上使用MySQL 5.5.31,我很难删除一个不存在的过程。 对于根用户: 创建新数据库: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,
- 创建新数据库: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'
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)
- 带用户测试
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'
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)
授予所有测试特权。*使用授予选项“测试”@“%”当从localhost连接时,code>不会向用户授予特权
您需要分别为localhost
授予权限
从错误中可以看出,您在第一次拖放之后正在断开连接
,然后再次从本地主机连接
好的,如果您一个接一个地执行这4条语句,您应该会得到与使用root
GRANT ALL PRIVILEGES ON test.* TO 'test'@'%' WITH GRANT OPTION;
CREATE PROCEDURE test.foo() SELECT NOW();
DROP PROCEDURE IF EXISTS test.foo;
DROP PROCEDURE IF EXISTS test.foo;
让我知道,如果我已经把我的答案说清楚了试着使用SET-sql\u-notes=0
在DROP PROCEDURE IF EXISTS
命令之前。感谢您的回复,我完全忽略了这一部分:您需要分别为本地主机授予权限。首先,您是否要尝试依次执行这4条语句?