前言
MySQL 是一个广泛使用的开源关系型数据库管理系统。在实际开发中,我们经常需要从本地或外部服务器连接到 MySQL 数据库。本文将详细介绍如何配置 MySQL 以允许远程连接。
准备工作
- 服务器为 Linux
- 已安装 MySQL 的服务器(本博客基于 MySQL 8.0)
- 拥有管理员权限的用户
- 确保目标客户端可以通过网络访问 MySQL 服务器的 3306 端口
步骤一:修改 MySQL 配置文件
默认情况下,MySQL 只允许本地连接(localhost)。要开启远程连接,需修改其配置文件。
1. 找到配置文件
Linux 系统一般位于 /etc/mysql/mysql.conf.d/mysqld.cnf
或者使用命令查找:
mysql --help | grep "my.cnf"
2. 修改 bind-address
找到如下行:
bind-address = 127.0.0.1
将其改为:
[mysqld]
bind-address = 0.0.0.0
这表示监听所有 IP 地址上的连接请求。
注意:如果你使用的是云服务器(如阿里云、腾讯云),还需开放对应的安全组规则。
步骤二:创建或授权远程访问用户
1.登录 MySQL:
mysql -u root -p
2. 创建新用户并授权远程访问
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. (可选)修改已有用户的权限
GRANT ALL PRIVILEGES ON *.* TO 'existing_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
步骤三:重启 MySQL 服务
使配置生效,重启 MySQL 服务:
sudo systemctl restart mysql
安全建议
- 避免使用 root 用户进行远程连接
- 使用强密码策略
- 在生产环境中限制访问 IP 范围
- 启用 SSL 加密连接(高级用法)
测试远程连接
使用客户端工具(如 Navicat、DBeaver、MySQL Workbench 或命令行)尝试连接:
mysql -h your_server_ip -u remote_user -p
如果提示连接成功,则说明配置已生效!
云服务器注意事项
如果使用的是云服务器,上面操作确保无误之后还是不能远程连接,请务必检查:
- 安全组是否放行 3306 端口
- 是否关闭了防火墙(如 UFW、iptables)
- 是否绑定了公网 IP(某些 VPC 环境需要注意)
总结
通过上面的步骤,就可以允许MySQL远程连接,不过在使用的时候应该始终关注安全性。