MySQL允许外网访问设置

本文详细介绍了在Ubuntu系统中使用XAMPP时遇到的MySQL访问问题及解决步骤,包括如何通过修改host权限和授权用户来实现从任意主机或指定IP访问MySQL数据库。

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

1、Ubuntu安装XAMPP后无法在终端里面通过mysql -u root -p 的方式访问MySQL数据库,是因为XAMPP中的MySQL命令工具在/opt/lampp/bin/目录中,所以可使用如下命令进入MySQL:

/opt/lampp/bin/mysql -u root -p

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'@'%' identifide by '123456' with grant option;
mysql> flush privileges;

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

mysql> grant all privileges on *.* to 'sudons'@'192.168.1.100' identifide by '123456' with grant option;
mysql> flush privileges;
### 配置 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、付费专栏及课程。

余额充值