设置MySQL允许外网访问

本文详细介绍如何配置MySQL数据库以便从远程主机进行访问。包括修改配置文件、登录数据库、更新用户权限等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.修改配置文件
sudo vim /etc/mysql/my.cnf
把bind-address参数的值改成你的内/外网IP或0.0.0.0,或者直接注释掉这行.


2.登录数据库
mysql -u root -p

输入密码
mysql> use mysql;


3.查询host
mysql> select user,host from user;


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


5.授权用户
任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;

IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION; 
mysql> flush privileges;

 

PS:以上为授权方法,以下为改表方法:

mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;

摘自:http://www.cnblogs.com/live41/archive/2013/04/02/2995178.html

转载于:https://www.cnblogs.com/chenjiacheng/p/7509431.html

### 配置 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值