最近我切换到了MySQL 8;之前我在GCP中使用了MySQL 5.7。我知道像这样的问题已经问过了,但我没有任何运气。我的问题是,我想创建一个新用户--只需说'user1‘,并将所有权限授予所有数据库上的用户帐户。
用于创建用户的查询:
CREATE USER 'user-1'@'%' IDENTIFIED BY 'user_password';特权:
GRANT ALL PRIVILEGES ON *.* TO 'user-1'@'%';此权限查询用于处理MySQL 5.7,但当我尝试在MySQL 8中运行此查询时,会得到此错误( MySQL以根用户身份登录的,MySQL在GCP中):
SQL Error (1045): Access denied for user 'root'@'%' (using password: YES)我还试着像这样一个接一个地运行这个查询:
CREATE USER 'user-1'@'%' IDENTIFIED BY 'user_password';
GRANT ALL PRIVILEGES ON *.* TO 'user-1'@'%';但我还是犯了同样的错误。我了解到,在MySQL 8中,本地主机根用户拥有所有特权,但我的服务器位于Google中,因此如何将所有特权授予我创建的用户?
当我在mysql-8中运行这个查询时(我使用HeidiSQL连接数据库并运行查询)
SELECT * FROM mysql.user;我得到了这个输出:

其中有两个根用户:
我想我是以host-%用户身份登录的,因为我的服务器在GCP中,所以我不能给我创建的用户任何特权。那么是否有任何方法可以对
root@%这样我就可以给予其他用户完全的权限,因为我不认为有任何方法可以作为root@localhost登录
发布于 2021-04-26 14:12:58
这里的问题是,您正在尝试创建一个超级用户,这在云SQL中是不受支持的,正如您在这份文件中看到的那样。
Cloud不支持
SUPER特权,这意味着GRANT ALL PRIVILEGES语句无法工作。作为替代,您可以使用GRANT ALL ON%.*。
上述选项可能足以授予您所期望的权限。
https://stackoverflow.com/questions/67262069
复制相似问题