前言
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 个关键信息:
- 主机地址
- 本地连接:
localhost或127.0.0.1 - 远程服务器:公网 ip 地址(如
120.79.xx.xx)
- 本地连接:
- 端口号默认:
3306若修改过则填实际端口(如 3307、3308) - 用户名默认管理员账号:
root - 密码安装 mysql 时自己设置的密码
- 数据库字符集统一使用
utf8mb4(支持 emoji、最全中文)
1.3 安装 navicat
navicat 支持多数据库类型(mysql、postgresql、sql server、oracle 等),我们只需要用 navicat for mysql 或 navicat premium。
安装步骤:
- 下载对应系统版本
- 一路下一步,默认安装路径即可
- 打开后选择试用,即可进入主界面

二、本地 mysql 连接(最基础、最常用)
本地连接指 navicat 和 mysql 安装在同一台电脑上,是开发最常用场景。
2.1 新建 mysql 连接
- 打开 navicat
- 左上角点击 连接 → mysql
- 弹出连接设置窗口

2.2 填写连接参数
常规选项卡
- 连接名:自定义,方便自己识别,如
本地mysql-5.7、本机mysql8 - 主机:
localhost或127.0.0.1 - 端口:
3306 - 用户名:
root - 密码:你的 mysql 密码
- 建议勾选 保存密码,避免每次输入

高级选项卡(解决乱码必设置)
- 编码:选择
utf8mb4 - 其他默认即可

ssl 选项卡
- 本地连接一般不使用 ssl,保持关闭

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 配置远程连接
- 新建连接
- 主机:填写服务器公网 ip
- 端口:3306
- 用户名:root
- 密码:服务器 mysql 密码
- 测试连接 → 成功
3.2 ssh 隧道连接(更安全,生产推荐)
很多公司不允许直接开放 3306 端口,这时用 ssh 隧道 中转连接。
配置方法:
常规页
- 主机:localhost
- 端口:3306
- mysql 账号密码
ssh 页
- 使用 ssh 隧道:勾选
- 主机名 / ip:服务器公网 ip
- 端口:22
- 用户名:服务器登录账号(如 root)
- 验证方式:密码 / 密钥文件
测试连接即可成功
优点:
- 不用暴露 3306 端口
- 更安全
- 适合内网、生产环境
四、docker 内 mysql 连接方法
很多人用 docker 跑 mysql,也经常连不上,正确步骤:
- 运行容器时必须映射端口
docker run -d -p 3306:3306 --name mysql -e mysql_root_password=123456 mysql:8.0
navicat 连接
- 主机:localhost
- 端口:3306
- 账号密码正常填写
若仍连不上
- 检查端口映射是否正确
- 进入容器授权远程访问
五、navicat 连接 mysql 12 个必看避坑(99% 人都踩过)
坑 1:报错 2002 – can’t connect to mysql server

原因
- mysql 服务没启动
- 端口错误
- 防火墙拦截
- 云服务器安全组没开 3306
解决
- 启动 mysql 服务
- 核对端口
- 关闭防火墙或放行 3306
- 云控制台安全组开放端口



坑 2:报错 1045 – access denied 拒绝访问
原因
- 账号或密码错误
- 没授权远程访问
解决
- 确认密码正确
- 执行授权 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:中文乱码、问号???
原因字符集不统一。
解决
- 连接高级设置编码:utf8mb4
- 数据库建库时:utf8mb4
- 表字符集:utf8mb4
- 程序连接串也用 utf8mb4
坑 5:本地能连,远程死活连不上
原因
- bind-address 未改为 0.0.0.0
- 未授权 % 远程账号
- 防火墙 / 安全组拦截
- 服务器运营商封禁 3306
解决按本文远程连接四步重新检查。
坑 6:navicat 保存密码后仍提示输入
原因
- 密码错误
- 勾选保存密码但未生效
- 连接配置被修改
解决删除连接重新创建,重新测试保存。
坑 7:只能看到部分数据库,看不到系统库
原因账号权限不足。
解决使用 root 账号或重新授权:
grant all on *.* to 'user'@'%';
坑 8:连接成功,但执行 sql 很慢
原因
- 网络延迟高
- mysql 配置过低
- navicat 刷新频率过高
解决
- 用 ssh 隧道
- 关闭 navicat 自动刷新
- 优化 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 端口映射了还是连不上
原因
- 端口冲突
- 容器内 mysql 未授权
- 容器未正常运行
解决
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。
七、生产环境安全建议(非常重要)
- 不要用 root 账号远程全网开放新建业务专用账号,只授予对应库权限
- 不要用 3306 默认端口改为 3307、3308 等
- 限制来源 ip不要用 %,改为公司出口公网 ip
- 优先使用 ssh 隧道连接
- 定期修改密码
- 关闭不必要的外部访问权限
- 开启 mysql 日志,便于排查入侵
八、总结
navicat 连接 mysql 看似简单,实际涉及服务状态、端口、防火墙、安全组、授权、加密规则、字符集等多个环节,任何一步错都会连接失败。
本文完整覆盖:
- 本地连接
- 公网远程连接
- ssh 隧道连接
- docker mysql 连接
- 12 个高频避坑
- 生产安全规范
- 基础操作教程
只要严格按照步骤操作,99% 的连接问题都能一次性解决。如果你遇到特殊报错,可以直接根据错误码对照本文避坑部分,基本都能找到解决方案。
到此这篇关于navicat连接mysql保姆级教程的文章就介绍到这了,更多相关navicat连接mysql内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论