MySQL设置IP访问

准备工作

  1. 关闭防火墙
  2. 设置数据库可外部访问
  3. 设置IP白名单(可以不设置)

执行代码

grant all privileges on *.* to 'ip'@'address' identified by 'password';
flush privileges;

【ip】和【address】根据自身情况替换为有效字符。

注意事项

  1. IP访问比起SSH隧道访问更加不稳定,用工具连接时会经常掉线
  2. 开启IP访问建议同时设置白名单限制访问,但本地IP不固定,需要定期更换
### 如何配置 MySQL 数据库 IP 白名单并设置远程访问权限 #### 修改 MySQL 用户的主机名限制 为了实现基于 IP访问控制,在创建或修改 MySQL 用户时,可以通过指定用户的 `host` 字段来限定该用户可以从哪个特定 IP 或者网段连接到数据库。这实际上就是实现了所谓的“白名单”功能[^1]。 对于已经存在的用户,如果想要更改其允许连接的 IP 地址,则需要更新对应的 user 表记录中的 host 列: ```sql UPDATE mysql.user SET Host='新IP地址' WHERE User='用户名'; FLUSH PRIVILEGES; ``` 当涉及到多个 IP 地址或者整个子网时,可以使用通配符 `%` 来表示任意数量字符的位置,例如 `'%.example.com'` 可以匹配所有来自 example.com 域下的主机;而对于 IPv4 子网掩码则可以直接写成 `'192.168.%'` 这样的形式[^2]。 #### 使用 GRANT 语句授予特定 IP 访问权 另一种方式是在不改变现有用户的前提下,利用 `GRANT` 语法给定某个具体的 IP 授予相应的操作权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'ip_address' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这里的 `*.*` 表示给予全局范围内的全部表的所有权限,实际应用中应根据需求调整为更精确的对象和权限级别。同样地,也可以采用上述提到的方式定义更加灵活的 IP 模式[^4]。 #### 编辑 my.cnf 文件绑定监听地址 除了通过 SQL 语句管理外,还可以编辑 MySQL 的配置文件 (`my.cnf`) 中有关 bind-address 参数的部分,从而决定 MySQL Server 应该监听哪一个网络接口上的请求,默认情况下此参数被设为 localhost (即仅限本地),因此要支持外部访问就需要将其改为服务器的真实公网 IP 或者留空让服务侦听所有的可用网络接口[^5]: ```ini [mysqld] bind-address = 0.0.0.0 ``` 完成以上任一步骤之后记得重启 MySQL 服务使改动生效,并确保防火墙规则也已适当开放端口以便于远端客户端能够成功建立 TCP/IP 连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值