我创建了数据库,例如"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;

这就是我创建"超级用户"权限的方式(尽管我通常会指定一个主机).

IMPORTANT NOTE

虽然这个答案可以解决访问问题,但WITH GRANT OPTION创建了一个可以访问edit the permissions of other users的MySQL用户.

授予选项权限使您能够将自己拥有的权限授予其他用户或从其他用户中删除这些权限.

出于安全原因,您不应将此类用户帐户用于公众有权访问的任何进程(即网站).建议您在这种情况下使用create a user with only database privileges.

Mysql相关问答推荐

对多个数据库运行UPDATE mySQL查询

运行简单查询时Prisma预准备语句错误

使用Check查看过go 两个月是否完成了IRM Meetup

DJANGO 使用原始 MYSQL 查询计算记录数并在 html 模板中使用结果

特定时间段内每个客户的运行总计

在 MySQL 中,如何对 LIKE 查询进行批量更新,删除字符?

如何使用等于、喜欢和不等于在 json 字段上编写查询?

从 MySQL 8.0.12 升级到 8.0.32 时出错

估计对大表进行分区所需的时间

如何在Pandas 中使用 to_sql

优化解析 5000 万行 MySQL 表的请求

如何使用 DBD::mysql 判断 MySQL 服务是否正在运行

为什么 MySQL 不使用索引进行简单的SELECT * FROM Table WHERE field='value'查询?

提取 MySQL 5.7 连续值的差异

MySQL过滤食谱上的多对多 - 成分表

如何在sql中挑出某些名称

Sequelize Query 查找日期范围内的所有记录

如何将数组存储到mysql中?

MySQL更新查询与左连接和分组依据

将 UTF8 表上的 latin1 字符转换为 UTF8