DBeaver 连接 MySQL 完整排错教程

DBeaver 连接 MySQL 完整排错教程
数据库教程

DBeaver 连接 MySQL 完整排错教程

从「连不上」到「成功插入数据」,5 个典型报错逐一击破

本文记录了一个新手从零配置 DBeaver + MySQL 数据库环境的完整过程。适合刚接触 Spring Boot + MySQL 项目、卡在数据库配置环节的同学。全文共踩了 5 个坑,每个都给出了根因和一句话解决方案。
装好 Workbench 报错1 Connection refused 报错2 服务名无效 报错3 Public Key 报错4 Unknown DB 成功 ✓ 数据
图 1:排错全景路线图 ------ 5 个报错依次解决后成功

一、背景

学习项目需要用到 springbootdb 数据库,里面放一张 city 表。目标 SQL 如下:

复制代码
-- 1. 创建数据库
CREATE DATABASE springbootdb;

-- 2. 创建表

DROP TABLE IF EXISTS city;

CREATE TABLE city (

id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市编号',

province_id int(10) unsigned NOT NULL COMMENT '省份编号',

city_name varchar(25) DEFAULT NULL COMMENT '城市名称',

description varchar(25) DEFAULT NULL COMMENT '描述',

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

-- 3. 插入数据

INSERT city VALUES (1, 1, '西安市', '马优晨的家在西安市长安区');

INSERT city VALUES (2, 2, '泉州市', '张望的家在泉州市');
DBeaver 客户端 GUI JDBC MySQL Server 服务 mysqld springbootdb 数据库 city 表 ① 你装好的 ② 最初缺的 ③ 最终目标
图 2:环境关系图 ------ 三个层次,缺了中间的服务层就全断了

二、坑 1:Connection refused(服务根本没启动)

报错

复制代码
Communications link failure
Connection refused: getsockopt

**原因:**MySQL Server 服务根本没在运行,端口 3306 上没有服务监听。

复制代码
# 确认服务是否在跑
netstat -an | findstr 3306
sc query state= active | findstr /i "mysql"

**教训:**只装了 MySQL Workbench(图形化工具)≠ 装了 MySQL Server(数据库引擎)。Workbench 只是"遥控器",没有"电视"是遥控不了的。

三、坑 2:没有 MySQL Server(只装了客户端)

执行 mysql --version 能看到版本,但 net start mysql 提示「服务名无效」。看安装目录发现只有客户端 mysql.exe没有 mysqld.exe(服务器核心)
下载 Installer 点 Add 组件 选 MySQL Server 配置+启动
图 3:通过 MySQL Installer 的 Add 功能补装 Server

解决方案:用 MySQL Installer 安装 Server

步骤 操作
1 打开 https://dev.mysql.com/downloads/installer/ ,选 Windows (x86, 32-bit) MSI Installer(约 2.1MB)
2 Download → 点 "No thanks, just start my download."(免登录)
3 双击 .msi 运行,主界面点 Add...
4 展开 MySQL Servers → 选 MySQL Server 8.0.x - X64 → 点 ➡️ 加到右侧
5 一路 Next / Execute,等待下载安装

关键配置(Configuration):

步骤 操作
Type and Networking 端口保持 3306
Authentication Method 选第一个(强密码加密,推荐)
Accounts and Roles 设置 Root 密码(记住!DBeaver 要用)
Windows Service 勾选 Configure Windows Service + Start at System Startup

四、坑 3:Public Key Retrieval is not allowed(公钥问题)

报错

复制代码
Public Key Retrieval is not allowed

原因: MySQL 8.0 默认用 caching_sha2_password 认证,JDBC 驱动默认不允许自动获取服务器公钥。

**解决方案:**把连接 URL 改成:

复制代码
jdbc:mysql://localhost:3306/springbootdb?allowPublicKeyRetrieval=true&useSSL=false

注意: 本地客户端 下拉框要选 MySQL Binaries,不要选 MariaDB Binaries。改完点测试连接,这次成功了!

五、坑 4:Unknown database 'springbootdb'(数据库不存在)

报错

复制代码
Unknown database 'springbootdb'

原因: 公钥问题解决了,但 springbootdb 这个库还没创建。

**解决方案:**先连服务器,再建库。

步骤 操作
1 编辑连接,把 Database 栏的 springbootdb 删掉留空
2 点测试连接 → 成功
3 打开 SQL 编辑器,执行 CREATE DATABASE springbootdb;
4 刷新左侧列表,看到 springbootdb
5 重新编辑连接,把库名填回 springbootdb

六、坑 5:Table 'springbootdb.city' doesn't exist(表不存在)

报错

复制代码
Table 'springbootdb.city' doesn't exist

原因: 只选中 INSERT 那一行执行,但 city 表还没建。MySQL 只执行你选中的部分。

解决方案: 在 SQL 编辑器按 Ctrl+A 全选所有 SQL,再按 Ctrl+Enter 一次性执行。

✅ 全部搞定!

最终 city 表里的数据:

id province_id city_name description
1 1 西安市 马优晨的家在西安市长安区
2 2 泉州市 张望的家在泉州市

七、查看数据和刷新

在哪里看表:

复制代码
📁 springbootdb localhost:3306
   └── 📁 数据库
       └── 📁 springbootdb
           └── 📁 表
               └── 📄 city    ← 双击查看数据
方法 操作
快捷键 F5(最方便)
工具栏 点 🔄 刷新按钮
右键 数据区域右键 → 刷新
重新查询 执行 SELECT * FROM city

八、DBeaver 常用快捷键

快捷键 功能
F5 刷新数据
Ctrl+Enter 执行选中的 SQL
Alt+X 执行全部 SQL
Ctrl+Shift+Enter 解释执行计划

九、总结

报错 根因 解决一句话
Connection refused 服务没启动 安装并启动 MySQL Server
服务名无效 只装客户端没装 Server 用 Installer 的 Add 安装 Server
Public Key Retrieval MySQL 8.0 认证方式 URL 加 ?allowPublicKeyRetrieval=true&useSSL=false
Unknown database 库没创建 先清空库名连服务器,再 CREATE DATABASE
Table doesn't exist 表没建就插入 Ctrl+A 全选 SQL 一起执行

整个环境配置完成后,就可以在 Spring Boot 项目的 application.yml 里配置数据源连接这个 springbootdb 数据库了。如有问题欢迎留言交流。
DBeaver 连接 MySQL 完整排错教程 · 原创整理,转载请注明出处

相关推荐
二宝哥4 小时前
MySQL 修改密码策略详解:从基础到高级配置
mysql·密码学
一嘴一个橘子5 小时前
MysqL 索引的列 都是什么意思
mysql
秋风渡.7 小时前
MySQL_数据类型知识
数据库·mysql
一嘴一个橘子8 小时前
MysqL 主键索引 就是 聚簇索引 吗
mysql
Whyn9 小时前
MySQL 学习笔记(二)
mysql
我会尽全力 乐观而坚强9 小时前
MySQL数据类型
mysql
raindayinrain10 小时前
mysql原理--补充
数据库·mysql
NWU_白杨12 小时前
三种常用的数据存储技术
数据库·redis·mysql·sqlite
一嘴一个橘子12 小时前
MySqL 的 B+树、 叶子节点、非叶子节点
mysql