Navicat连接MySQL失败时,可按五种方式配置:一、本地直连(127.0.0.1:3306);二、远程IP直连(需授权用户@'%'并开放防火墙);三、SSH隧道(加密转发,MySQL可绑定127.0.0.1);四、Docker连接(用宿主机映射端口);五、云数据库(启用SSL及CA证书)。

如果您尝试使用Navicat连接MySQL数据库但无法建立通信,则可能是由于主机地址、端口、用户名或权限配置不匹配。以下是多种可行的连接配置方法:
一、本地直连(localhost/127.0.0.1)
该方式适用于Navicat与MySQL安装在同一台设备上,依赖TCP协议通信,避免因socket路径或命名管道导致的隐性失败。
1、启动Navicat,点击左上角“连接”→选择“MySQL”。
2、在“常规”选项卡中填写:连接名(如:本地MySQL-8.0)、主机:127.0.0.1(不建议填localhost)、端口:3306(若修改过请填实际端口)、用户名:root(或已授权用户)、密码:对应账户密码。
3、切换至“高级”选项卡,将Initial charset设置为utf8mb4,确保中文字符正确解析。
4、点击“测试连接”,弹出“连接成功”提示后,点击“确定”保存。
二、远程IP直连(公网/内网IP)
该方式要求MySQL服务监听非本地地址,并开放对应用户远程访问权限及系统防火墙端口。
1、确认MySQL服务已绑定到非127.0.0.1地址:编辑/etc/my.cnf(Linux/macOS)或my.ini(Windows),将bind-address = 0.0.0.0(或注释该行)。
2、登录MySQL命令行,执行授权语句:GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3、刷新权限:FLUSH PRIVILEGES;
4、在Navicat新建连接,“常规”页填写:主机:服务器公网或局域网IP(如192.168.1.100)、端口、用户名、密码。
5、检查服务器防火墙是否放行3306端口(Linux执行systemctl stop firewalld临时关闭,或添加规则)。
三、SSH隧道连接(高安全性场景)
该方式通过加密通道转发本地请求至远程MySQL,适用于云服务器未开放3306端口或需规避公网暴露风险的情形。
1、在Navicat新建MySQL连接,在“常规”页仅填写本地可识别的连接名、主机:127.0.0.1、端口3306、用户名与密码(此为MySQL服务端用户)。
2、切换至“SSH”选项卡,勾选“使用SSH通道”,填写:SSH主机名:远程服务器公网IP、端口:22、用户名:服务器系统用户(如ubuntu、root)、密码或密钥文件路径。
3、确保远程MySQL配置中bind-address仍为127.0.0.1(无需对外暴露),且SSH服务正在运行。
4、点击“测试连接”,Navicat将先建立SSH会话,再经隧道转发MySQL请求。
四、Docker容器内MySQL连接
该方式需明确宿主机映射端口与容器内MySQL实际监听端口,避免因端口错位导致连接拒绝。
1、运行docker ps -a查看MySQL容器PORTS列,确认宿主机映射端口(如0.0.0.0:3307->3306/tcp)。
2、Navicat新建连接,“常规”页填写:主机:127.0.0.1、端口:3307(即宿主机映射端口)、用户名、密码。
3、若容器使用自定义网络或bridge模式,确认容器内MySQL未限制host(如只授权'root'@'localhost'),应改为'root'@'%'并执行FLUSH PRIVILEGES。
4、检查Docker容器是否运行:docker exec -it [container_name] mysql -uroot -p验证内部可连。
五、云数据库(阿里云RDS/腾讯云CDB)连接
该方式需启用SSL连接或导入CA证书,因云厂商默认强制加密传输,且root用户不可直接使用。
1、登录云控制台,获取实例连接地址(如xxx.mysql.rds.aliyuncs.com)、端口、白名单IP(需添加当前客户端公网IP)。
2、创建专用数据库账号(非root),并在控制台完成授权。
3、在Navicat“常规”页填写对应域名、端口、新账号及密码;切换至“SSL”选项卡,勾选“使用SSL”,并指定CA证书路径(控制台下载的ca.pem)。
4、若遇TLS版本不兼容(如Navicat 15+与MySQL 8.0.28+握手失败),需在云数据库参数模板中将tls_version设为TLSv1.2并重启生效。


















