社区 mySQL 版本 8 中我的用户访问被拒绝

社区 mySQL 版本 8 中我的用户访问被拒绝

我正在使用 Ubuntu 21.04,它将 mySQL 从 5.x 更改为 8.0。我赞成使用最新的软件,所以不想回到 5.x。在 5.x 中有效的功能在 8.0 中不再有效。

使用 root 帐户没有问题,但使用我自己的用户出现访问错误:

Access denied for user 'fiji'@'localhost' (using password: YES)
Access denied for user 'fiji'@'%' to database 'mytest'

使用 Netbeans,我查看了 mysql 用户表。Root 拥有所有权限 Y,而我的用户拥有所有权限 N。我不确定这是否与问题有关。我在 5.x 上使用过这个

grant all on mytest.* to 'fiji'@'%' identified by 'nuke' with grant option

同样,我不确定 8.0 中有什么不同,但我注意到识别者略有变化。所以现在我有

create user 'fiji'@'%' identified with caching_sha2_password by 'nuke1234'
grant all on mytest.* to 'fiji'@'%' identified with caching_sha2_password by 'nuke1234' with grant option

密码从 4 个字符扩展到 8 个字符。对于我的用户,权限仍然全部为 N,对于 root,权限为 Y。访问数据库的能力没有变化,对于 root,可以访问,对于我的用户,则失败。我已经尝试了所有我能想到的方法,所以我需要一些建议,看看还有什么可以尝试。

谢谢,Ilan

答案1

好的,授权命令的格式已更改。这只是为了帮助遇到类似问题的人。正确的命令是

GRANT ALL PRIVILEGES ON mytest.* TO 'fiji'@'%'

它似乎不区分大小写,但在我的复制粘贴中却是大写。

为了让 netbeans 查看数据显示 Y,而不是 N,我必须将 mytest.(star) 更改为 (star).(star),即针对所有数据库。如果我指定某个特定数据库,则将显示 N,但它将针对给定数据库进行设置,并且我可以使用我的用户名登录。

相关内容