Navicat连接MySQL保姆级教程(含详细图文)

 更新时间:2026年04月24日 09:22:28   作者:编程实战派  
Navicat是一款支持多种主流数据库的图形化管理工具,提供可视化界面简化数据库操作,这篇文章主要介绍了Navicat连接MySQL保姆级教程的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下

前言

Navicat 是目前 Windows、macOS、Linux 平台上最主流、最易用的 MySQL 图形化管理工具,无论是本地开发、测试环境,还是服务器上的生产环境,几乎所有后端开发者、DBA 都会用到。但很多新手在第一次使用时,经常遇到连接失败、报错 2003/1045/2059、远程连不上、中文乱码、权限不足等问题,反复排查却找不到原因。

本文从零起步,完整讲解 Navicat 连接 MySQL 的全流程,包含本地连接、远程连接、SSH 隧道连接、阿里云 / 腾讯云服务器连接、Docker 内 MySQL 连接,并总结12 个高频避坑点,每个坑都附带原因 + 解决方案,全程一步一截图式描述,真正做到看完就能用。

全文约 5500 字,适合零基础、学生、刚入行开发、运维人员阅读。

一、前期准备工作

1.1 确认已安装 MySQL

首先必须保证你的电脑或服务器上已经安装并正常运行 MySQL,版本不限(5.5 / 5.6 / 5.7 / 8.0 均适用)。

如果你还没装 MySQL:

  • Windows 推荐安装 MySQL 5.7 或 8.0(稳定、兼容性强)
  • macOS 可通过 Homebrew 安装
  • Linux 直接用 yum /apt 安装

安装完成后,必须确保MySQL 服务处于运行状态

1.2 确认 MySQL 基础信息

连接前必须知道以下 5 个关键信息:

  1. 主机地址
    • 本地连接:localhost127.0.0.1
    • 远程服务器:公网 IP 地址(如 120.79.xx.xx
  2. 端口号默认:3306若修改过则填实际端口(如 3307、3308)
  3. 用户名默认管理员账号:root
  4. 密码安装 MySQL 时自己设置的密码
  5. 数据库字符集统一使用 utf8mb4(支持 emoji、最全中文)

1.3 安装 Navicat

Navicat 支持多数据库类型(MySQL、PostgreSQL、SQL Server、Oracle 等),我们只需要用 Navicat for MySQLNavicat Premium

安装步骤:

  1. 下载对应系统版本
  2. 一路下一步,默认安装路径即可
  3. 打开后选择试用,即可进入主界面

二、本地 MySQL 连接(最基础、最常用)

本地连接指 Navicat 和 MySQL 安装在同一台电脑上,是开发最常用场景。

2.1 新建 MySQL 连接

  1. 打开 Navicat
  2. 左上角点击 连接 → MySQL
  3. 弹出连接设置窗口

2.2 填写连接参数

常规选项卡

  • 连接名:自定义,方便自己识别,如 本地MySQL-5.7本机MySQL8
  • 主机localhost127.0.0.1
  • 端口3306
  • 用户名root
  • 密码:你的 MySQL 密码
  • 建议勾选 保存密码,避免每次输入

高级选项卡(解决乱码必设置)

  • 编码:选择 utf8mb4
  • 其他默认即可

SSL 选项卡

  • 本地连接一般不使用 SSL,保持关闭

2.3 测试连接

  1. 点击左下角 测试连接
  2. 若弹出 连接成功,说明配置正确
  3. 点击 确定 保存连接

2.4 打开连接

左侧列表会出现你刚创建的连接,双击连接名即可激活使用。激活后可以看到:

  • 系统数据库(mysql、information_schema、performance_schema 等)
  • 可新建数据库、新建表、执行 SQL、导入导出数据等

三、远程连接 MySQL 完整开通流程(重点)

远程连接指:

  • 你的电脑(本地 Navicat)
  • 连接 → 服务器上的 MySQL(阿里云、腾讯云、华为云、公司内网服务器)

远程连接默认是关闭的,必须手动开通,否则永远连不上。

3.1 开通远程连接四步走

第一步:修改 MySQL 配置文件,允许外部访问

MySQL 默认只允许本机(127.0.0.1)访问,需要修改绑定地址。

Windows

找到 my.ini,通常路径:

C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

找到:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

Linux(CentOS / Ubuntu)

配置文件一般为 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf同样修改:

bind-address = 0.0.0.0

修改完成后重启 MySQL 服务

第二步:给 root 账号授权远程访问

登录服务器 MySQL 执行以下 SQL:

-- 创建允许任意IP访问的账号
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';

-- 授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

解释:

  • % 代表允许所有 IP 地址连接
  • 生产环境不建议给 root 开全网权限,可指定固定 IP

如果提示失败,表示root用户可能已存在,跳过创建用户语句即可,也可以换一个用户。

第三步:开放服务器防火墙 3306 端口

Linux 防火墙

# CentOS 7+
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

# Ubuntu
ufw allow 3306
ufw reload

云服务器(阿里云 / 腾讯云)

必须在控制台安全组里开放 3306 端口,否则防火墙放开也没用。

  • 入方向:允许 TCP 3306
  • 来源:0.0.0.0/0(或你的本地公网 IP)

第四步:Navicat 配置远程连接

  1. 新建连接
  2. 主机:填写服务器公网 IP
  3. 端口:3306
  4. 用户名:root
  5. 密码:服务器 MySQL 密码
  6. 测试连接 → 成功

3.2 SSH 隧道连接(更安全,生产推荐)

很多公司不允许直接开放 3306 端口,这时用 SSH 隧道 中转连接。

配置方法:

  1. 常规页

    • 主机:localhost
    • 端口:3306
    • MySQL 账号密码
  2. SSH 页

    • 使用 SSH 隧道:勾选
    • 主机名 / IP:服务器公网 IP
    • 端口:22
    • 用户名:服务器登录账号(如 root)
    • 验证方式:密码 / 密钥文件
  3. 测试连接即可成功

优点:

  • 不用暴露 3306 端口
  • 更安全
  • 适合内网、生产环境

四、Docker 内 MySQL 连接方法

很多人用 Docker 跑 MySQL,也经常连不上,正确步骤:

  1. 运行容器时必须映射端口
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
  1. Navicat 连接

    • 主机:localhost
    • 端口:3306
    • 账号密码正常填写
  2. 若仍连不上

    • 检查端口映射是否正确
    • 进入容器授权远程访问

五、Navicat 连接 MySQL 12 个必看避坑(99% 人都踩过)

坑 1:报错 2002 – Can’t connect to MySQL server

原因

  1. MySQL 服务没启动
  2. 端口错误
  3. 防火墙拦截
  4. 云服务器安全组没开 3306

解决

  1. 启动 MySQL 服务
  2. 核对端口
  3. 关闭防火墙或放行 3306
  4. 云控制台安全组开放端口

坑 2:报错 1045 – Access denied 拒绝访问

原因

  • 账号或密码错误
  • 没授权远程访问

解决

  1. 确认密码正确
  2. 执行授权 SQL:
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

坑 3:MySQL 8.0 报错 2059 认证失败

原因MySQL 8.0 默认使用 caching_sha2_password 加密,Navicat 不兼容。

解决

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;

坑 4:中文乱码、问号???

原因字符集不统一。

解决

  1. 连接高级设置编码:utf8mb4
  2. 数据库建库时:utf8mb4
  3. 表字符集:utf8mb4
  4. 程序连接串也用 utf8mb4

坑 5:本地能连,远程死活连不上

原因

  1. bind-address 未改为 0.0.0.0
  2. 未授权 % 远程账号
  3. 防火墙 / 安全组拦截
  4. 服务器运营商封禁 3306

解决按本文远程连接四步重新检查。

坑 6:Navicat 保存密码后仍提示输入

原因

  1. 密码错误
  2. 勾选保存密码但未生效
  3. 连接配置被修改

解决删除连接重新创建,重新测试保存。

坑 7:只能看到部分数据库,看不到系统库

原因账号权限不足。

解决使用 root 账号或重新授权:

GRANT ALL ON *.* TO 'user'@'%';

坑 8:连接成功,但执行 SQL 很慢

原因

  1. 网络延迟高
  2. MySQL 配置过低
  3. Navicat 刷新频率过高

解决

  1. 用 SSH 隧道
  2. 关闭 Navicat 自动刷新
  3. 优化 MySQL 配置

坑 9:建库时报错 “非法排序规则”

原因字符集与排序规则不匹配。

解决统一使用:

  • 字符集:utf8mb4
  • 排序规则:utf8mb4_general_ci

坑 10:导入 SQL 文件时报错超时

原因文件过大、max_allowed_packet 太小。

解决修改 my.ini/my.cnf:

max_allowed_packet = 1024M

重启 MySQL。

坑 11:远程连接一段时间自动断开

原因MySQL wait_timeout 超时断开。

解决在 Navicat 连接属性 → 高级 → 勾选 保持连接间隔

坑 12:Docker MySQL 端口映射了还是连不上

原因

  1. 端口冲突
  2. 容器内 MySQL 未授权
  3. 容器未正常运行

解决

docker exec -it mysql mysql -uroot -p

进入后执行授权语句。

六、连接成功后基础常用操作(新手必学)

6.1 新建数据库

右键连接 → 新建数据库

  • 数据库名:英文,不要中文
  • 字符集:utf8mb4
  • 排序规则:utf8mb4_general_ci

6.2 新建表

双击进入数据库 → 右键表 → 新建表设置字段名、类型、长度、主键、自增、非空等。

6.3 执行 SQL 查询

点击 查询 → 新建查询输入 SQL:

SELECT * FROM user;

点击运行。

6.4 数据备份与恢复

  • 右键数据库 → 转储 SQL 文件 → 备份
  • 右键数据库 → 运行 SQL 文件 → 恢复

6.5 用户与权限管理

可在 Navicat 图形界面直接创建用户、分配库表权限,无需手写 SQL。

七、生产环境安全建议(非常重要)

  1. 不要用 root 账号远程全网开放新建业务专用账号,只授予对应库权限
  2. 不要用 3306 默认端口改为 3307、3308 等
  3. 限制来源 IP不要用 %,改为公司出口公网 IP
  4. 优先使用 SSH 隧道连接
  5. 定期修改密码
  6. 关闭不必要的外部访问权限
  7. 开启 MySQL 日志,便于排查入侵

八、总结

Navicat 连接 MySQL 看似简单,实际涉及服务状态、端口、防火墙、安全组、授权、加密规则、字符集等多个环节,任何一步错都会连接失败。

本文完整覆盖:

  • 本地连接
  • 公网远程连接
  • SSH 隧道连接
  • Docker MySQL 连接
  • 12 个高频避坑
  • 生产安全规范
  • 基础操作教程

只要严格按照步骤操作,99% 的连接问题都能一次性解决。如果你遇到特殊报错,可以直接根据错误码对照本文避坑部分,基本都能找到解决方案。

到此这篇关于Navicat连接MySQL保姆级教程的文章就介绍到这了,更多相关Navicat连接MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL流程函数常见用法实例分析

    MySQL流程函数常见用法实例分析

    这篇文章主要介绍了MySQL流程函数常见用法,结合实例形式分析了mysql流程函数功能、常见使用方法与操作注意事项,需要的朋友可以参考下
    2019-12-12
  • MySQL删除数据后自增主键ID不连贯问题及解决

    MySQL删除数据后自增主键ID不连贯问题及解决

    这篇文章主要介绍了MySQL删除数据后自增主键ID不连贯问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • 探究MySQL优化器对索引和JOIN顺序的选择

    探究MySQL优化器对索引和JOIN顺序的选择

    这篇文章主要介绍了探究MySQL优化器对索引和JOIN顺序的选择,包括在优化器做出错误判断时的选择情况,需要的朋友可以参考下
    2015-05-05
  • Mysql复合主键和联合主键的区别解析

    Mysql复合主键和联合主键的区别解析

    这篇文章主要介绍了Mysql复合主键和联合主键的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • MySQL字符串截取指定字符串right使用示例

    MySQL字符串截取指定字符串right使用示例

    这篇文章主要为大家啊AI介绍了MySQL字符串截取指定字符串right使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 企业生产MySQL优化介绍

    企业生产MySQL优化介绍

    这篇文章主要介绍了企业生产MySQL优化介绍的相关内容,文中叙述了其优化内容,各个方面介绍的比较详细,需要的朋友可以参考。
    2017-10-10
  • mySQL 延迟 查询主表

    mySQL 延迟 查询主表

    在主外键表存在关系的时候如果加上"lazy=true"的话,则表明延迟,即只查询主表中的内容,而不查询外键表中的内容。
    2009-09-09
  • 如何提高MySQL Limit查询性能的方法详解

    如何提高MySQL Limit查询性能的方法详解

    今天小编就为大家分享一篇关于如何提高MySQL Limit查询性能的方法详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL中事件调度器用法与使用场景详解

    MySQL中事件调度器用法与使用场景详解

    MySQL事件调度器是MySQL 5.1版本引入的一个强大功能,允许数据库管理员创建和调度在特定时间或按照特定间隔自动执行的任务,下面小编就来和大家详细介绍一下它的具体使用吧
    2025-08-08
  • MySQL数据库全量备份+增量备份的实现

    MySQL数据库全量备份+增量备份的实现

    本文介绍了通过全量备份和增量备份实现数据库数据的安全,并通过cron定时任务自动进行备份,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03

最新评论