远程MYSQL 1103错误 ERROR 1130: Host *.*.*.* is not allowed to connect to this MySQL

本文详细介绍了如何使用MySQL命令行界面登录、切换数据库、查询和更新用户权限、刷新权限表以及验证更改的过程,帮助您更好地理解MySQL权限管理和配置。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'   from user where user='root';
第一句:以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。
当您看到错误提示 `ERROR 1130 (HY000): Host '172.18.18.99' is not allowed to connect to this MySQL server` 时,这意味着 MySQL 服务器拒绝了来自 IP 地址为 `172.18.18.99` 的连接请求。通常是因为该主机未被授权访问数据库。 以下是解决这个问题的具体步骤: ### 解决方案 #### 1. **确认用户权限** 首先需要检查并确保目标用户的权限已经被正确授予,并且允许从指定的客户端 IP 访问数据库。 登录到拥有足够权限(root 用户最佳)的 MySQL 控制台中运行以下命令来查看现有账户及其来源限制: ```sql SELECT user, host FROM mysql.user; ``` 如果您想创建一个新的远程访问账号或者更新已有账号使其能够接受来自任意位置的连接请求,可以使用下面任一 SQL 命令(取决于您的安全需求): - 创建新用户并赋予全部权限给所有表结构(谨慎操作): ```sql CREATE USER 'yourusername'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'%'; FLUSH PRIVILEGES; ``` - 授权某个特定IP地址的机器访问: ```sql GRANT ALL PRIVILEGES ON databasename.* TO 'yourusername'@'172.18.18.99'; FLUSH PRIVILEGES; ``` 请注意替换上述代码片段中的 `'yourusername'`, `'password'`, 和 `databasename` 字段为您实际的需求值。 #### 2. **防火墙设置** 其次还需要确保操作系统层面的防火墙规则不会阻止外部网络流量到达 MySQL 默认端口 (`3306`) 。对于Linux系统来说,这涉及调整iptables 或 ufw 规则;而对于Windows Server 则需配置 Windows Firewall with Advanced Security 中的相关入站规则。 在 Linux 上启用对 MySQL 端口开放的操作示例: ```bash # 对于UFW用户 sudo ufw allow 3306/tcp # 对于Iptables用户 sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT ``` 然后保存这些更改以便重启之后仍然有效果。 #### 3. **MySQL 配置文件** 最后还要检查 MySQL 自身的配置文件(`my.cnf` or `my.ini`) ,保证它设置了合适的 bind-address 参数以接收远端连接,默认情况下这个参数可能是设定了仅限本地回环接口(loopback interface)绑定,例如 `bind-address = 127.0.0.1`,这时你需要将其更改为服务器的实际公网 IP 或者通配符 `0.0.0.0`(表示监听所有的IPv4地址): **注意:** 将 bind-address 设定为 `0.0.0.0` 能让 MySQL 听取所有可用网卡上的连接,但这同样增加了潜在的安全风险,请结合自身业务场景权衡利弊后再做决策。 编辑后的 my.cnf/my.ini 示例内容应包含类似下列行: ```ini [mysqld] ... bind-address = 0.0.0.0 # 或者具体的公共IP地址 ``` 完成以上修改后别忘了重启 MySQL 服务使新的配置生效! --- 经过以上三个方面的排查和处理,一般就能顺利解决问题啦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值