mysql环境搭建后连接客户端工具配置指南

来源:这里教程网 时间:2026-02-28 20:50:31 作者:

MySQL 服务启动后连不上 localhost 是什么情况

多数人装完 MySQL,

mysql -u root -p
命令能进,但用 Navicat、DBeaver 或 MySQL Workbench 连
localhost
就报错 —— 典型是服务没监听 TCP 端口,或绑定了
127.0.0.1
却被客户端解析成 IPv6 的
::1

检查方法:

netstat -tuln | grep :3306
如果只看到
127.0.0.1:3306
,说明只接受 IPv4 回环;如果没输出,说明
skip-networking
开着或
bind-address
被设成了
127.0.0.1
以外的值(比如
0.0.0.0
但防火墙拦了)。

确认
my.cnf
(Linux)或
my.ini
(Windows)里没有
skip-networking = 1
bind-address
推荐设为
127.0.0.1
(仅本地)或
0.0.0.0
(全网卡,注意防火墙)
改完重启服务:
sudo systemctl restart mysql
(Linux)或服务管理器重启 MySQL 服务

Navicat 连接时提示 “Client does not support authentication protocol”

这是 MySQL 8.0+ 默认用

caching_sha2_password
插件,而老版本 Navicat(v12 以前)、某些 Python 驱动(如 PyMySQL 0.9 以下)不支持。不是密码错了,是认证协议不兼容。

临时解决(开发环境可用):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
然后
FLUSH PRIVILEGES;

生产环境不建议降级认证方式,应升级客户端工具或驱动 若用 Docker 启 MySQL 8,加启动参数:
--default-authentication-plugin=mysql_native_password
连接字符串里显式指定 auth plugin(如 JDBC:
?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false

DBeaver 连接 MySQL 8 报错 “Public Key Retrieval is not allowed”

本质是 MySQL 8 的安全策略变更:当服务端要求公钥交换(比如用

caching_sha2_password
),客户端默认禁止自动获取公钥,防止中间人攻击。DBeaver 默认关掉了这个开关。

解决方法是在连接配置的 Driver Properties 里手动加两个参数:

allowPublicKeyRetrieval
→ 设为
true
useSSL
→ 设为
false
(本地开发可关;生产必须开 SSL 或配证书)

注意:不能只改 URL,DBeaver 的 MySQL 驱动(MySQL Connector/J)必须 ≥ 8.0.15 才完整支持

caching_sha2_password
;低于此版本即使加参数也无效。

客户端连上但查不到数据库或表名乱码

常见于 Windows 安装包默认字符集是

latin1
,而建库时没指定
CHARACTER SET utf8mb4
,导致客户端发 UTF-8 请求,服务端按 latin1 解,结果表名显示成问号或乱码符号。

验证当前连接字符集:

SHOW VARIABLES LIKE 'character_set%';<br>SHOW VARIABLES LIKE 'collation%';
关键看
character_set_client
character_set_connection
character_set_database
是否都是
utf8mb4

永久修复:在
my.cnf
[mysqld]
段加:
character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci
客户端工具(如 Navicat)连接时,在高级设置里勾选「使用 MySQL 字符集」或手动填
utf8mb4
已有库表乱码?
ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
,再逐表
ALTER TABLE
,但数据已损毁的需从备份恢复

字符集这事一旦漏掉初始化配置,后面补救成本远高于起步时多敲两行配置。

相关推荐