Navicat无法连接远程MySQL(服务器端)

当在CentOS服务器上安装并配置好MySQL后,使用Navicat尝试远程连接时遇到错误。解决方案包括检查服务器的3306端口是否开放,以及在云服务器的安全组中添加3306端口的访问规则。如果仍无法连接,需登录MySQL服务器,修改root用户的host为%或服务器地址,以便允许远程访问。

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

服务器(CentOS)搭建安装好MySQL之后,MySQL没有问题,但是用Navicat远程连接出现如下错误:

在这里插入图片描述
出现这种错误,在服务器端MySQL正常的情况下,首先检查服务器端的3306端口是否开放
解决:

  • 我的服务器端是在云上,进入云控制台,找到自己对应的服务器
    在这里插入图片描述
  • 找到服务器的安全组
    在这里插入图片描述
  • 找到配置规则
    在这里插入图片描述
  • 然后查看服务器的端口范围,是否拥有MySQL的3306端口
  • 如果没有点击右上角添加安全组规则,将3306添加进去
    这样就OK了。

如果Navicat还是连接不上

  1. 请连接上自己的服务器,输入密码,进入到MySQL
mysql -uroot -p
  1. 进入到名称为mysql的这个数据库
use mysql;
    ### 如何使用 Navicat 连接远程 MySQL 服务器 #### 准备工作 为了成功建立连接,需确认远程 MySQL 数据库已允许外部 IP 地址访问,并开放了必要的网络端口。通常情况下,默认使用的 MySQL 端口号为 `3306`。 #### 设置 MySQL 用户权限 确保目标 MySQL 实例中的用户具有足够的权限来接受来自特定主机或任意位置 (`%`)连接请求。这可以通过执行 SQL 命令实现: ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_secure_password'; FLUSH PRIVILEGES; ``` 上述命令修改了 root 用户的身份验证方式并设置了新密码[^4]。 对于某些环境而言,可能还需要更新用户的 host 字段以支持更广泛的客户端接入: ```sql use mysql; update user set host = '%' where user = 'root'; FLUSH PRIVILEGES; ``` 此操作使得指定账户可以从任何地方发起连接尝试[^5]。 #### 开启防火墙设置 如果是在云平台上部署的服务,则应检查安全组策略,确保入站规则里包含了对 TCP 协议下 3306 端口的许可。 #### 创建 SSH 隧道(针对受限场景) 当直接通过公网 IP 访问存在困难时,可以考虑利用 SSH 隧道作为替代方案。具体做法是先借助 SSH 登录到中间跳板机上,再由其内部网卡去触达最终的目的地——即运行着 MySQL 的那台机器[^3]。 #### 在 Navicat 中创建新的连接 打开应用程序后,按照如下指引完成配置: - **Connection Name**: 自定义名称以便识别此次会话; - **Host/IP Address or Socket**: 输入远端数据库所在地址;如果是采用 SSH 方式的间接连通,则此处填写 localhost 或者 127.0.0.1; - **Port Number**: 默认值一般保持不变即可; - **Username & Password**: 提供之前设定好的认证凭证信息; - 若选择了基于 SSH 的模式,还需额外补充关于私钥文件路径以及对应服务端的相关参数。 保存以上选项之后点击测试按钮检验能否顺利握手成功。一旦确立起稳定链路便能正常开展后续的数据交互活动了。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值