使用Navicat连接阿里云ECS服务器上安装的MySQL数据库出现 Can‘t connect to MYSQL server on ‘‘(10060) 问题解决

博主在阿里云安全组开启3306端口后,仍无法通过Navicat成功连接MySQL数据库,发现3306端口未在firewall中开放。使用firewall-cmd命令添加并重启防火墙后,问题得到解决,成功连接到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在阿里云安全组开放3306端口之后,使用navicat连接数据库依然出现Can’t connect to MYSQL server on ‘’(10060) 问题。
在这里插入图片描述
于是使用 firewall-cmd --list-ports 命令#查看端口开放情况,结果:
在这里插入图片描述
3306端口并没有被开发,
然后使用 firewall-cmd --zone=public --add-port=3306/tcp --permanent 命令#开放3306端口
再使用
在这里插入图片描述
systemctl restart firewalld.service #重启防火墙
然后再重新连接
在这里插入图片描述
在这里插入图片描述

### 使用 Navicat 连接到云服务器上的 MySQL 数据库 #### 准备工作 在开始之前,确保已完成以下准备工作: 1. 已经成功购买并配置好阿里云 ECS 服务器。 2. 安装了 Docker 并通过 Docker 成功运行了 MySQL 实例[^4]。 3. 确认 MySQL 的 root 用户已设置允许远程访问,并分配了相应的权限。 --- #### 配置 MySQL 授权远程访问 由于默认情况下 MySQL 不会开放外部网络连接,因此需要手动调整其配置文件以及用户权限: 1. **登录到 MySQL** 登录到 Docker 中的 MySQL 容器,并执行如下命令: ```bash docker exec -it mysql bash mysql -u root -p ``` 2. **修改用户的主机地址限制** 默认情况下,`root` 用户仅限于本地 (`localhost`) 访问。可以通过 `ALTER USER` 命令更改此限制: ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; ``` 上述语句的作用是将 `'root'@'%'` 设置为可以从任意 IP 地址访问 MySQL 数据库,并指定新的密码[^3]。 3. **授予远程访问权限** 执行以下 SQL 命令来赋予 `root` 用户完全控制权: ```sql GRANT ALL ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; ``` 4. **确认防火墙规则** 如果服务器启用了防火墙,则需打开 MySQL 默认使用3306 端口: ```bash sudo ufw allow 3306/tcp sudo systemctl reload ufw ``` 5. **重启 MySQL 服务** 修改完成后,建议重新启动 MySQL 以应用所有变更: ```bash service mysql restart ``` --- #### 在 Navicat 中创建连接 完成上述操作后,在 Navicat 软件中按照以下方式建立与云服务器上 MySQL 数据库连接: 1. 启动 Navicat Premium 或 Navicat for MySQL 应用程序[^1]。 2. 创建一个新的连接: - 右键点击左侧导航栏中的 “Connections”,选择 “New Connection”。 - 输入名称以便识别该连接(例如:“Aliyun_MySQL”)。 3. 配置基本参数: - **Connection Name**: 自定义名称。 - **Host/Address**: 输入您的阿里云服务器公网 IP 地址。 - **Port**: 默认填写 `3306`。 - **Username**: 输入刚才设定好的用户名(通常是 `root`)。 - **Password**: 对应的密码。 4. 测试连接: 单击底部的 “Test Connection” 按钮验证是否能够正常通信。如果一切无误,应该可以看到成功的提示消息。 --- #### 解决可能遇到的问题 以下是几个常见的错误及其解决方案: 1. **Error Code: 1045 Access denied for user...** 此类问题是因账户未被授权或者密码不匹配引起。请返回至第 II 条目下的步骤逐一排查[^2]。 2. **Can't connect to server on ...** 表明目标机器拒绝接受来自客户端的数据包传输请求。检查服务器的安全组策略是否有放行 TCP/UDP 类型流量经过端口号 3306[^5]。 3. **Lost connection during query execution** 当长时间闲置时可能会触发超时断开机制。尝试调高 timeout 参数值或保持活动状态即可缓解此类现象发生。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值