是的,可以连接阿里云服务器上手动安装的 MySQL。只要配置正确,无论是通过官方源码编译安装、Yum/Apt 安装,还是其他方式手动部署的 MySQL,都可以远程连接。
但需要注意以下几个关键步骤和配置:
✅ 一、确保 MySQL 已正确安装并运行
# 检查 MySQL 是否正在运行
systemctl status mysql
# 或
systemctl status mysqld
如果没有运行,先启动:
systemctl start mysql
设置开机自启:
systemctl enable mysql
✅ 二、配置 MySQL 允许远程访问
-
修改 MySQL 配置文件(通常是
/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf)找到
bind-address这一行,将其改为:bind-address = 0.0.0.0如果注释掉这一行,默认也可能允许所有地址连接,但显式设置更安全可控。
-
重启 MySQL 服务
systemctl restart mysql
✅ 三、创建可远程登录的用户并授权
登录 MySQL(默认只能本地):
mysql -u root -p
执行以下 SQL 命令:
-- 创建一个新用户(例如 user1),允许从任意主机连接(生产环境建议限制 IP)
CREATE USER 'user1'@'%' IDENTIFIED BY 'your_password';
-- 授予该用户权限(如所有数据库的全部权限)
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
注意:
'%'表示允许从任何 IP 连接,出于安全考虑,建议指定具体客户端 IP,如'user1'@'123.123.123.123'
✅ 四、开放服务器防火墙端口
MySQL 默认使用 3306 端口。
1. 服务器本地防火墙(如 firewalld 或 iptables)
# firewalld 示例
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
或使用 ufw(Ubuntu):
ufw allow 3306
2. 阿里云安全组规则(非常重要!)
登录 阿里云控制台 → 云服务器 ECS → 安全组 → 配置规则
添加一条 入方向规则:
- 授权类型:TCP
- 端口范围:3306
- 授权对象:你的公网 IP(如
123.123.123.123/32),或临时用0.0.0.0/0(不推荐长期使用)
✅ 五、测试连接
使用客户端工具(如 Navicat、DBeaver、MySQL Workbench)或命令行连接:
mysql -h <你的阿里云服务器公网IP> -P 3306 -u user1 -p
如果能成功连接,说明配置成功。
⚠️ 安全建议
- 不要长期使用 root 用户远程登录
- 避免开放
%和0.0.0.0/0给所有人 - 定期更新密码,使用强密码
- 考虑使用 SSH 隧道连接更安全(即本地通过 SSH 转发 3306 端口)
🔒 使用 SSH 隧道连接(推荐方式)
如果你担心直接暴露 MySQL 端口,可以只允许本地访问 MySQL,然后通过 SSH 隧道连接:
ssh -L 3306:localhost:3306 root@<你的阿里云服务器IP>
然后本地用 mysql -h 127.0.0.1 -P 3306 -u user1 -p 连接,数据通过加密隧道传输,更安全。
总结
| 步骤 | 是否必须 |
|---|---|
| 安装并启动 MySQL | ✅ 必须 |
修改 bind-address = 0.0.0.0 |
✅ 必须 |
| 创建远程用户并授权 | ✅ 必须 |
| 开放系统防火墙 | ✅ 必须 |
| 配置阿里云安全组 | ✅ 必须 |
| 测试连接 | ✅ 建议 |
如有具体报错信息(如“Connection refused”、“Access denied”等),欢迎提供,我可以帮你进一步排查。
云服务器