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升级到5.7时,wordpress导数据报错1067的问题

    mysql升级到5.7时,wordpress导数据报错1067的问题

    小编最近把mysql升级到5.7了,wordpress导数据报错,导入数据库时报1067 – Invalid default value for ‘字段名’的问题,怎么解决这个问题,下面小编把我的解决方案分享到脚本之家平台供大家参考,希望对大家有所帮助
    2021-05-05
  • Ubuntu下取消MySQL数据库本机绑定限制方法

    Ubuntu下取消MySQL数据库本机绑定限制方法

    在Ubuntu系统中,添加了MySQL账户,赋予了数据库完全操作权限,并且允许数据库从外部链接 但是,还是无法远程访问MySQL数据库
    2013-06-06
  • 关于MySQL实现指定编码遇到的坑

    关于MySQL实现指定编码遇到的坑

    这篇文章主要介绍了一个关于MySQL指定编码实现的小坑,文中大家需要注意如果有需要保存emoji符号的字段,记得一定要指定编码为 utf8mb4,感兴趣的朋友一起看看吧
    2021-10-10
  • Mysql数据库表定期备份的实现详解

    Mysql数据库表定期备份的实现详解

    这篇文章主要介绍了Mysql数据库表定期备份的实现详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • 浅析MySQL并行复制

    浅析MySQL并行复制

    这篇文章主要介绍了MySQL并行复制的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • mysql数据库设置utf-8编码的方法步骤

    mysql数据库设置utf-8编码的方法步骤

    这篇文章主要介绍了mysql数据库设置utf-8编码的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • MySQL学习之基础操作总结

    MySQL学习之基础操作总结

    MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的。本文将为大家详细介绍一下MySQL的基础操作,需要的可以参考一下
    2022-03-03
  • MySQL无法启动的解决办法

    MySQL无法启动的解决办法

    这篇文章主要介绍了MySQL无法启动的解决办法的相关资料,希望通过本文大家能解决数据库不能启动的问题,需要的朋友可以参考下
    2017-09-09
  • Mysql5.7在Centos6中的安装方法

    Mysql5.7在Centos6中的安装方法

    这篇文章主要介绍了Mysql5.7在Centos6中的安装方法,需要的朋友可以参考下
    2017-06-06
  • PostgreSQL与MySQL区别全面对比详析

    PostgreSQL与MySQL区别全面对比详析

    MySQL和PostgreSQL都是强大的关系型数据库管理系统,但它们适用于不同的用例和需求,下面这篇文章主要介绍了PostgreSQL与MySQL区别全面对比的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12

最新评论