连接MySQL8.0.30时报错:host “” is not allowed to connect to this mysql server

报错原因:1、防火墙问题;2、MySQL用户的权限设置不正确(最主要的)。

1、防火墙问题:确保MySQL服务器所在的主机允许连接到MySQL端口(通常是3306)的流量。检查防火墙规则以确保端口是开放的。

        打开设置中的“防火墙和网络保护”,点击“允许应用通过防火墙”,确保Port 3306是被允许的。

2、MySQL用户的权限设置不正确。

网上资料都是显示通过“GRANT”语句授权用户的操作权限,使所有主机均可链接数据库。例如:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

但从MySQL 8.0 版本开始,为了提高数据库安全性,GRANT OPTION 权限对于 root 用户默认是禁用的。这意味着即使你使用 root 用户登录,也不能给其他用户分配 WITH GRANT 权限。

在MySQL 8.0 版本中,GRANT OPTION 权限只能由拥有 SUPER 权限的用户来分配,而 root 用户通常具有 SUPER 权限。然而,MySQL 8.0 中 root 用户默认的 GRANT OPTION 权限是被禁用的,因此即使 root 用户在技术上拥有 SUPER 权限,也不能分配 WITH GRANT 权限。

所以会报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT

解决方法:创建新用户并授权权限。

CREATE USER 'new_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将创建一个新用户 'new_user' 并授予该用户在所有数据库和表上的全部权限,同时包括 WITH GRANT OPTION 权限。然后使用FLUSH PRIVILEGES命令使新的权限设置立即生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值