我已经创建了数据库,例如“mydb”。
CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH'; GRANT ALL ON mydb.* TO 'myuser'@'%'; GRANT ALL ON mydb TO 'myuser'@'%'; GRANT CREATE ON mydb TO 'myuser'@'%'; FLUSH PRIVILEGES;
现在我可以从任何地方登录到数据库,但不能创建表。
如何授予对该数据库和(将来)表的所有权限。我无法在“mydb”数据库中创建表。我总是得到:
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin); ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
GRANT ALL PRIVILEGES ON mydb.* TO ‘myuser’@’%’ WITH GRANT OPTION;
这就是我创建“超级用户”权限的方式(尽管我通常会指定一个主机)。
虽然这个答案可以解决访问问题,但WITH GRANT OPTION创建一个可以编辑其他用户权限的 MySQL 用户。
WITH GRANT OPTION
GRANT OPTION 权限使您能够将您自己拥有的权限授予其他用户或从其他用户中删除。
出于安全原因,您不应将此类用户帐户用于公众可以访问的任何流程(即网站)