如何配置 MySQL 允许远程连接

前言

MySQL 是一个广泛使用的开源关系型数据库管理系统。在实际开发中,我们经常需要从本地或外部服务器连接到 MySQL 数据库。本文将详细介绍如何配置 MySQL 以允许远程连接。

准备工作

  • 服务器为 Linux
  • 已安装 MySQL 的服务器(本博客基于 MySQL 8.0)
  • 拥有管理员权限的用户
  • 确保目标客户端可以通过网络访问 MySQL 服务器的 3306 端口

步骤一:修改 MySQL 配置文件

默认情况下,MySQL 只允许本地连接(localhost)。要开启远程连接,需修改其配置文件。

1. 找到配置文件

Linux 系统一般位于 /etc/mysql/mysql.conf.d/mysqld.cnf
或者使用命令查找:

bash 复制代码
mysql --help | grep "my.cnf"

2. 修改 bind-address

找到如下行:

ini 复制代码
bind-address = 127.0.0.1

将其改为:

ini 复制代码
[mysqld]
bind-address = 0.0.0.0

这表示监听所有 IP 地址上的连接请求。

注意:如果你使用的是云服务器(如阿里云、腾讯云),还需开放对应的安全组规则。

步骤二:创建或授权远程访问用户

1.登录 MySQL:

bash 复制代码
mysql -u root -p

2. 创建新用户并授权远程访问

sql 复制代码
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 'remote_user'@'%' 表示任何 IP 都可以使用 remote_user 登录。
  • 若只允许特定 IP,可替换为 'remote_user'@'192.168.1.100'。

3. (可选)修改已有用户的权限

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'existing_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

步骤三:重启 MySQL 服务

使配置生效,重启 MySQL 服务:

bash 复制代码
sudo systemctl restart mysql

安全建议

  • 避免使用 root 用户进行远程连接
  • 使用强密码策略
  • 在生产环境中限制访问 IP 范围
  • 启用 SSL 加密连接(高级用法)

测试远程连接

使用客户端工具(如 Navicat、DBeaver、MySQL Workbench 或命令行)尝试连接:

bash 复制代码
mysql -h your_server_ip -u remote_user -p

如果提示连接成功,则说明配置已生效!

云服务器注意事项

如果使用的是云服务器,上面操作确保无误之后还是不能远程连接,请务必检查:

  • 安全组是否放行 3306 端口
  • 是否关闭了防火墙(如 UFW、iptables)
  • 是否绑定了公网 IP(某些 VPC 环境需要注意)

总结

通过上面的步骤,就可以允许MySQL远程连接,不过在使用的时候应该始终关注安全性。

相关推荐
Database_Cool_4 小时前
阿里云 RDS MySQL 降本增效实战:从规格选型到成本优化,月成本降低64%全攻略
mysql·阿里云·云计算
java_logo4 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司11 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒13 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手14 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学14 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh16 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户713335851562416 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z1234567898617 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD17 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关