SUPER/Administrative 权限:我的数据库中没有用户拥有这些权限 [错误代码 1227:访问被拒绝]

SUPER/Administrative privileges: no users of my database have them [Error Code 1227: Access denied]

我的工作组有一个(非常)小的数据库,它位于 Google 云 SQL 平台上。我们是一群 ~8 位生态学家,刚接触 SQL 数据库管理,也是 Google 云平台的新手。我们正在与 MySQL Workbench.

合作

我们一直在 SQL 中创建视图来总结和汇总我们的原始表格。有时(经常)MySQL 对我们大吼大叫说:

Error Code: 1055. Expression #7 of SELECT list is not in GROUP BY clause...

我们可以随心所欲地调整我们的观点,添加所有的分组变量,直到奶牛回家,但实际上重新设置全局 "group by" 变量会很好,ala

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

但在这一点上,MySQL 变得更加不高兴并说

Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation

然后我想,没问题!我创建了这个数据库,我不能把自己添加为管理员吗?

GRANT SUPER ON ourdb.* TO myusername@'localhost' IDENTIFIED BY 'password';

哦,不,原来没那么简单!拒绝访问!

我也尝试以 root 身份登录。拒绝 ROOT 访问!

啊!我认为我做了一件非常糟糕的事情,因为我们数据库上没有人拥有 DBA 权限。我在 MySQL workbench 导航到 "Users and Privileges."

时看到这个

我做了什么,我可以取消吗??

百万感谢全世界的 SQL 人。

朋友不用担心!

你可能(据我所知)没有做过坏事!

根据 Google 的 Cloud SQL documentation,root 用户拥有除 SUPER 和 FILE 之外的所有权限。这是 Google 云 SQL 的特征。

不过放心!您还有其他三种方法可以轻松更改一直拖慢进度的全局“分组依据”变量。关于这个 Configuring database flags how-to guide.

有一个很好的解释

希望对您有所帮助!