需配置用户权限、bind-address和防火墙。先创建可远程登录用户并授权,再将bind-address设为0.0.0.0,最后开放3306端口,重启服务后测试连接。

要在 MySQL 中配置远程访问权限,需要从两个层面进行设置:MySQL 用户权限配置和服务器网络配置。只要其中一环没配好,远程连接就会失败。以下是具体操作步骤。
1. 修改 MySQL 用户权限
默认情况下,MySQL 用户只能从本地(localhost)登录。要允许远程访问,需为用户授予从指定或任意主机访问的权限。
示例:允许特定用户从任意 IP 连接
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
说明:
- 'your_user'@'%' 表示该用户可以从任何 IP 地址连接。
- 如果只想允许某个 IP(如 192.168.1.100),可改为 'your_user'@'192.168.1.100'。
- FLUSH PRIVILEGES 是刷新权限表,让更改立即生效。
2. 修改 MySQL 配置文件绑定地址
MySQL 默认只监听本地回环地址(127.0.0.1),需要修改配置使其监听所有网络接口。
找到 MySQL 配置文件 my.cnf 或 my.ini(Linux 通常在 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf,Windows 在安装目录下)。
找到 bind-address 这一行:
bind-address = 127.0.0.1将其改为:
bind-address = 0.0.0.0这表示 MySQL 将监听所有可用网络接口。保存文件后重启 MySQL 服务:
3. 确保防火墙允许访问
即使 MySQL 允许远程连接,系统防火墙可能仍会阻止外部访问 3306 端口。
以 Ubuntu 使用 ufw 为例:
sudo ufw allow from 192.168.1.0/24 to any port 3306或者开放给所有 IP(注意安全风险):
sudo ufw allow 3306CentOS 使用 firewalld 的话:
sudo firewall-cmd --permanent --add-port=3306/tcpsudo firewall-cmd --reload
4. 测试远程连接
从另一台机器使用客户端测试:
mysql -u your_user -p -h your_mysql_server_ip如果能成功登录,说明远程访问已配置完成。
基本上就这些。关键是用户权限、bind-address 和防火墙三者都正确设置。配置完成后建议限制访问 IP 范围,避免将数据库直接暴露在公网造成安全风险。










