要实现 MySQL 的远程连接,需要进行几个关键配置步骤。以下是详细说明:
默认情况下,MySQL 只允许本地连接,需要修改配置文件:
找到 MySQL 配置文件(通常是my.cnf
或mysqld.cnf
),位置可能在/etc/mysql/
或/etc/
目录下,注释掉bind-address
这一行:
如果有skip-networking
选项,也需要注释掉,它会禁用 TCP/IP 连接。
修改后重启 MySQL 服务:
sudo systemctl restart mysql
sudo systemctl restart mysqld
登录 MySQL 服务器,执行以下 SQL 命令创建用户并授权:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
说明:
-
%
表示允许任何 IP 地址连接
-
可以指定具体 IP,如
'remote_user'@'192.168.1.100'
-
权限应遵循最小权限原则,不要随意授予
ALL PRIVILEGES
确保防火墙允许 MySQL 的 3306 端口通过:
sudo ufw allow 3306/tcp
sudo ufw reload
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
在客户端机器上使用 MySQL 命令行测试连接:
mysql -h 服务器IP地址 -u remote_user -p
然后输入密码,如果配置正确就能成功连接。
-
生产环境中不建议使用
%
允许所有 IP 连接,应限制特定 IP
-
强烈建议使用强密码
-
考虑使用 SSL 加密连接提高安全性
-
有些云服务提供商(如 AWS、阿里云)还有额外的安全组设置需要配置
如果连接失败,可以检查 MySQL 错误日志(通常在/var/log/mysql/error.log
)排查具体原因。