mysql开启外网访问权限

 

 

1、打开mysql.exe(MySQL Command Line Client),输入密码

2、输入:use mysql;

3、查询host输入: select user,host from user;

4、创建host(如果有"%"这个host值,则跳过这一步)

如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;

5、授权用户

(1)任意主机以用户root和密码pwd连接到mysql服务器

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pwd' WITH GRANT OPTION;
mysql> flush privileges;

(2)指定IP为(如192.168.1.100)的主机以用户tuser和密码tpwd连接到mysql服务器

mysql> GRANT ALL PRIVILEGES ON *.* TO 'tuser'@'192.168.1.100' IDENTIFIED BY 'tpwd' WITH GRANT OPTION;
mysql> flush privileges;

6、找到mysql的配置文件 my.cnf  该文件一般在/etc/my.cnf 下

如果发现有bind-address=127.0.0.1  表示3306端口只允许本机访问,修改为 bind-address=0.0.0.0 表示所有ip都可以访问

3306端口

7、重启mysql

service mysqld stop  停止服务

service mysqld start  启动服务

### 配置 MySQL 允许外网访问 #### 修改防火墙设置 为了使外部设备能够连接到本地运行的 MySQL 服务,需确保防火墙配置允许外部流量进入 MySQL 默认使用的端口(通常是3306)。对于 macOS 用户来说,如果使用的是 `ufw` 这样的防火墙工具,则可以通过执行如下命令来开放该端口: ```bash sudo ufw allow mysql ``` 此命令会创建一条规则让防火墙接受针对 MySQL 的入站请求[^1]。 #### 调整 MySQL 用户权限 默认情况下,MySQL 安装后的 root 用户仅限于 localhost 登录。为了让其他机器上的客户端能成功建立连接,需要修改对应用户的主机字段。具体做法是在目标服务器上登录 MySQL 控制台并执行 SQL 命令更新 user 表中的 host 列值为 `%` ,这表示任何 IP 地址都可以作为来源地址尝试连接数据库实例: ```sql USE mysql; UPDATE user SET Host='%' WHERE User='root'; FLUSH PRIVILEGES; -- 应用更改 EXIT; ``` 上述操作使得指定账户可以从任意位置发起连接请求[^2]。 #### 处理 Docker 中的 MySQL 实例 当 MySQL 是在一个 Docker 容器内运行时,除了调整容器内部的安全性和网络参数之外,还需要考虑宿主机层面的因素。通常,在启动容器的时候就要指明映射关系以便暴露必要的端口号给外界,并且可能还要编辑 `/etc/mysql/my.cnf` 或者相应配置文件内的 bind-address 参数使其监听所有可用接口而不是仅仅绑定至 loopback 接口(即127.0.0.1)[^3]。 请注意安全风险:开启远程访问可能会增加潜在攻击面;因此建议采取适当措施保护敏感数据和服务免受未授权访问的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝文龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值