设置 MySQL 允许外网远程访问的详细步骤

许南星
许南星
发布时间:2026-10-14| 4人浏览过
原创

在本地开发完成后,往往需要将 MySQL 数据库暴露给外部网络以便其他服务器或客户端连接。本教程将分两部分说明:一是修改配置文件解除本地监听限制,二是通过 SQL 命令授予远程账户权限。操作前请务必确认已备份数据,并注意生产环境下的网络安全风险。

第一步:修改 MySQL 配置文件解除本地绑定

默认情况下,MySQL 可能仅监听本地回环地址(127.0.0.1),拒绝外部连接。需要编辑对应的配置文件来更改此行为。

第1步:定位并编辑配置文件

目的:找到监听地址配置项,允许非本地 IP 连接。
入口:终端命令行 vim 或 nano 编辑器。
动作:

  1. Linux 系统通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf;Windows 系统通常为 my.ini。
  2. 使用管理员权限打开文件:
# Linux 示例
sudo vim /etc/mysql/my.cnf

在文件中搜索 bind-address 字段。如果存在如下内容:
bind-address = 127.0.0.1
请将其注释掉或删除该行,或者修改为 0.0.0.0 以监听所有网络接口:

# bind-address = 127.0.0.1
bind-address = 0.0.0.0

第2步:重启 MySQL 服务

目的:使配置文件变更生效。
动作:

sudo service mysql restart
# 或者在某些系统中使用
sudo systemctl restart mysqld

第二步:创建允许远程访问的用户账号

修改配置后,还需确保数据库内部有允许从远程主机登录的用户账户。默认 root 用户通常只允许 localhost 连接。

第3步:登录 MySQL 并检查用户权限

入口:mysql -u root -p
动作:

use mysql;
select user, host from user;

观察输出结果,若 root 用户的 host 值为 localhost 或 127.0.0.1,则需进行修改或新建账户。

第4步:授权远程访问

以下两种方法可选其一。推荐使用方法一,更具灵活性且符合现代安全规范。

方法一:授予所有数据库的所有权限给指定 IP 或任意 IP

参数:
'user'@'host':用户名及允许连接的来源 IP。
'password':账户密码。
*.*:所有数据库的所有表。

示例1:允许任意 IP 通过 root 连接(仅限测试环境)

CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

示例2:仅允许特定 IP(如 192.168.1.102)连接

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
FLUSH PRIVILEGES;

方法二:修改现有用户 Host 为 %

注意:直接更新 host 字段需谨慎,不建议在生产环境对 root 用户执行,除非完全了解其影响。

UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;

完成判断与安全提醒

配置完成后,可从外部网络尝试使用客户端工具(如 Navicat、DBeaver 或命令行)连接 MySQL。若能成功建立连接,即表示配置成功。

  • 防火墙放行:确保服务器安全组或防火墙(如 iptables, ufw, firewalld)已开放 MySQL 默认端口 3306。
  • 网络安全:将 host 设置为 % 意味着允许任何 IP 连接,这会极大增加被暴力破解的风险。生产环境中建议限制为特定的服务器 IP 段,或使用 SSH 隧道进行加密连接。

以上就是设置 MySQL 允许外网访问的详细内容,更多关于数据库远程配置的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。