拓冰建站拓冰建站
首页 / 资讯中心 / 正文

IDEA连接MySQL报Unknown database?从原理到排查的完整指南

在 IDEA 右侧 Database 面板里新建一个 MySQL 数据源填好用户名、密码点下 Test Connection结果弹出一行红字Unknown database student_manager。这个场景我在不同项目里至少见过几十次从刚学数据库课程设计的学生到写 Spring Boot 多数据源的老开发都会踩进同一个坑。今天这篇就把这个问题从头到尾整理一遍报错原理是什么、排查顺序怎么走、IDEA 数据源配置有哪些容易忽略的细节以及几个同类型的高频坑。不管你是第一次配置 IDEA 数据库连接还是已经在多数据源、数据库同步工具里被这个问题卡住按这篇文章的思路走一遍基本都能在十分钟内定位并解决。1. 先定位问题根源Unknown database 报错到底来自哪里1.1 把报错拆开看MySQL 的 1049 错误码Unknown database 这几个单词字面意思就是“未知的数据库”。这里的“未知”不是 IDEA 不认识而是 MySQL 服务端明确告诉客户端你让我使用的这个库在我这里不存在。对应到 MySQL 协议里这是错误码 1049SQLSTATE 是 42000。验证方法很直接打开命令行先用账号密码登录 MySQL然后手动执行 USE xxxx; 这条语句。如果你得到 ERROR 1049 (42000): Unknown database xxxx那问题百分之百出在服务器端——库没建、名字不对或者你连错了 MySQL 实例。反过来如果命令行里 USE xxxx 一切正常那问题就出在 IDEA 这一侧的配置上。这个判断思路非常关键因为很多人在解决这个问题时习惯性地反复在 IDEA 界面里改 URL、换驱动、重启 IDEA折腾半天最后发现库根本没建。先分清问题发生在哪一端能省下大量无效操作。1.2 从点击 Test Connection 到报错弹出中间发生了什么理解报错链路很重要因为很多人误以为这是 IDEA 的 bug其实 IDEA 只是一个客户端工具真正的判断逻辑在数据库服务端。当你填完 IDEA 数据源配置并点击 Test Connection 时实际发生的过程是这样的IDEA 通过 JDBC 驱动建立一个到 MySQL 的 TCP 连接连接地址由 URL 里的 Host 和 Port 决定连接建立后驱动会尝试切换到 URL 或 Database 字段里指定的数据库向 MySQL 发送一条等效于 USE xxxx 的指令MySQL 收到指令后在自己的数据库列表里查找名为 xxxx 的库如果不存在或者说当前登录账号对这个库没有访问权限就返回错误 1049 Unknown database xxxxIDEA 收到这个错误码弹出红框显示给你。所以这个报错的本质是 MySQL 服务端对“切库”操作的拒绝。MySQL 8.0 默认使用 caching_sha2_password 认证方式但握手阶段和库名检查发生在认证之后所以它和密码错误、公钥检索失败是不同层面的问题排查时要把它们分开看。1.3 拿到报错先做三件事别急着改配置我见过不少同学在遇到这个报错后第一反应是去 IDEA 里换驱动版本、改连接超时时间或者反复点击 Test Connection 十几次这些操作基本无效。正确做法是先做三件事。第一用本机命令行验证数据库是否存在。执行 mysql -u 用户名 -p输入密码后执行 SHOW DATABASES;把输出的库名列表记下来看看你要连的库在不在里面注意大小写和下划线要和 IDEA 里填的完全一致。第二确认你连的 MySQL 实例是对的。如果本机装了多个 MySQL 版本或者数据库跑在 Docker 容器里尤其是容器做了端口映射但映射到了非默认端口那你 IDEA 里配的端口可能连到了另一个实例上库当然不存在。第三确认登录账号的权限范围。有时候库确实存在但当前账号只有某几个库的权限MySQL 会把其他库隐藏掉。这三件事做完你已经能判断问题到底出在哪个环节。剩下的事情就是按照下面几节的方法逐项修正。2. 数据库不存在、大小写和权限逐项排查常见原因2.1 数据库真的不存在或者名字写错了最朴素的原因往往是最常见的。很多课程设计项目从网上下载下来压缩包里带一个 .sql 脚本脚本开头可能有一句 CREATE DATABASE也可能没有。如果没有执行建库语句只导入了表结构和数据那数据库根本没创建。另一种情况是名字拼写问题我整理一下实际遇到过的写法差异你写的实际存在的库结果student_dbstudentdb没有下划线userDBuserdb大小写不同shop_manageshop-manage横线连字符和下划线混淆课程设计说明书上的库名脚本里实际用的库名文档和代码不一致遇到名字不一致时不要靠记忆和文档直接执行 SHOW DATABASES; 看 MySQL 自己的输出。这个输出不会骗人把看到的库名复制粘贴到 IDEA 的 Database 字段里最稳妥。另外还有一个容易忽略的点IDEA 的 Database 字段和 URL 中的库名要保持一致。有时候你手动编辑了 URL把库名改了但 Database 字段还是原来的测试连接时驱动默认使用 URL 里的库名就出现一个很迷惑的现象——Database 下拉框里明明能看到这个库但测试连接还是报 Unknown database。2.2 Linux 环境下库名大小写敏感这个坑在 Windows 本机开发时永远踩不到一上 Linux 服务器就原形毕露。MySQL 对数据库名和表名的大小写敏感程度由系统变量 lower_case_table_names 控制。在 Windows 上MySQL 默认 lower_case_table_names1库名和表名不区分大小写在 Linux 上默认值是 0库名和表名严格区分大小写。也就是说你在 Windows 上建一个叫 SchoolDB 的库用 school db 连也正常但同一份配置放到 Linux 服务器上就立刻报 Unknown database schooldb。我实际遇到的一个案例是项目在 Windows 本地开发数据库名是 web_order一切正常部署到 Linux 服务器后代码里的 JDBC 配置还是 jdbc:mysql://xxx/web_order但 DBA 在服务器上建的库名是 web_Order结果开发环境好好的生产环境连不上。排查方法很简单在服务器上执行 SHOW DATABASES;对比输出和 IDEA 里填的库名是否大小写完全一致。如果同一个库名需要兼容 Windows 和 Linux建议全部统一成小写这是最省事的方案。还有一个细节是lower_case_table_names 参数在 MySQL 8.0 里只能在初始化时设置不能后期修改所以如果已经初始化完成只能手动改名或重建库。2.3 端口、实例和容器映射容易连错库的三类场景我见过最隐蔽的 Unknown database 报错不是库名的问题而是连错了 MySQL 实例。第一种情况本机装了多个 MySQL。比如用安装包装了一个 5.7又用 Docker 跑了一个 8.0IDEA 里配的端口是 3306连的是 5.7但库是建在 Docker 容器里的 8.0 上自然会报 Unknown database。解决方法是登录 IDEA 连的那个端口执行 SHOW DATABASES; 看看库在不在如果不在再登录另一个端口查。第二种情况Docker 容器的端口映射没写对。启动命令是 docker run -d -p 3307:3306 -e MYSQL_DATABASEapp_db mysql:8.0那宿主机的 3307 端口才对应容器内的 MySQLIDEA 里如果填 3306连到的可能是宿主机上另一个 MySQL 实例甚至可能是其他服务的端口。这时候需要把 IDEA 的 Port 改成 3307或者在 Host 里填 127.0.0.1确保走的是映射端口。第三种情况云服务器的安全组或防火墙。你本地 IDEA 里 Host 填的是公网 IP但安全组只放行了 22 端口3306 没放行连接会直接超时而不是报 Unknown database。这个不属于本文主题但排查时需要排除掉因为有时候 MySQL 连接工具会先把数据库验证放在后面连接超时表现成其他错误。2.4 账号授权不足库存在但你看不到MySQL 有一个安全特性非管理员账号执行 SHOW DATABASES; 时只能看到自己拥有权限的库。也就是说库其实存在在服务器上但当前登录账号对它没有权限MySQL 就把这个库从结果里藏掉了。一个很典型的场景开发同学用 root 账号在本地测试一切正常到了测试环境DBA 只给了 app_user 账号部分库的权限比如只授权了 app_db 库IDEA 里随手填了一个 new_db连接时收到 Unknown database new_db。表面看是库不存在实际上是权限不足。排查方式在命令行用同一个账号登录执行 SHOW GRANTS FOR CURRENT_USER();看输出里有哪些库的权限。如果你要连的库不在授权列表里需要找管理员执行类似以下的授权语句GRANT ALL PRIVILEGES ON app_db.* TO app_user%; FLUSH PRIVILEGES;还有一种更隐蔽的情况账号能连接 MySQL也能看到库列表但选中库之后报错。这种通常是账号有全局连接权限但没有具体库的 USE 权限此时授权语句里的数据库名字段写对了就好。总之遇到 Unknown database先确认库存在再确认账号对这个库有权限两步都过了基本可以排除服务端问题。3. IDEA 连接数据库配置数据源完整实操3.1 打开 Database 面板与新建 MySQL 数据源IDEA 从 2020 版本开始右侧工具栏的 Database 面板整合得比较成熟一般默认就在编辑器右侧。如果你的 IDEA 右侧没有 Database 面板用快捷键搜索 Database 或者从 View 菜单里找 Tool Windows可以调出来。新建数据源的入口是 Database 面板左上角的 号点击后选择 Data Source再选 MySQL。如果你用的数据库不是 MySQL比如 PostgreSQL、Oracle操作路径一样但驱动和 URL 模板有差异。需要注意的是IDEA 社区版默认不带 Database 面板的这个功能吗实际测试下来从 2021 年之后的社区版开始Database 工具已经内置在 IDEA 社区版里可以直接使用只有更老的社区版可能需要装插件。如果你打开面板后找不到 MySQL 选项检查一下是不是装的是精简版或者插件被禁用了。在新建数据源之前建议先确认驱动版本。IDEA 左下角通常会有一个 Driver 下拉框默认是 MySQL Connector/J 8.x 系列。这里有个选择问题如果你的 MySQL 服务端是 5.7用 8.x 驱动一般也能连但如果驱动版本过老比如 5.1.x连接 MySQL 8.0 就会报 SSL 或认证相关的异常。后面专门有一节讲驱动版本这里先记住结论MySQL 8.0 服务端优先选 Connector/J 8.0.xMySQL 5.7 服务端用 5.1.x 或 8.0.x 都行。3.2 逐字段填写Host、Port、Database 和 URL 的关系进入 MySQL 数据源配置界面后你会看到几个核心输入框很多人就是在这里填乱的。Host 是数据库服务器的地址本机开发填 localhost 或 127.0.0.1连远程服务器填服务器 IP 或域名。这里有个细节如果本机同时有多个 MySQL 实例监听不同端口Host 填 127.0.0.1 是没问题的因为只要 Port 对了就会连到对应实例。Port 是 MySQL 的服务端口默认 3306。如果用了 Docker 端口映射要填映射到宿主机的端口不是容器内的 3306。填错端口最常见的表现是 Connection refused 或连接超时但偶尔也可能因为你本机有其他服务占用了那个端口连到了一个完全不是 MySQL 的服务上报异常内容就会五花八门。Database 字段是需要连接的库名这是 Unknown database 报错的关键字段。驱动建立连接后会尝试使用这个库所以这个字段必须和服务器上实际存在的库名一模一样。一种常见做法是先不确定要连哪个库Database 字段留空测试连接也能成功然后你在 Database 面板里能展开看到所有有权限的库右键选 Set as Default Schema 或者手动改 URL 指定库。这样做的好处是能先看到库列表避免因为不知道确切库名反复试错。URL 字段会自动根据 Host、Port、Database 生成格式是 jdbc:mysql://localhost:3306/dbname。手动修改 URL 也是允许的很多项目里会带一堆参数比如时区、字符集、SSL 配置。当你在 URL 里手动加了参数学Database 字段和 URL 中的库名要保持同步IDEA 测试连接时主要依据 URL 里的库名来建连两处不一致时容易产生“下拉框有库但连接报错”这种怪问题。整个界面上还有一个账号输入框和密码输入框账号填完别急着点 Test Connection先看 URL 里的库名是否和你期望连接的库名完全一致再点测试。3.3 JDBC URL 结尾的参数时区、SSL、公钥检索一个常见的现象是库名填对了账号密码也对但点 Test Connection 还是报错错误信息却不是 Unknown database而是 The server time zone value、Public Key Retrieval is not allowed 这类。这些都是在连接阶段出现的问题和库名无关但在实际配置数据源时经常和 Unknown database 一起出现尤其是从老版本 MySQL 迁移到 8.0 的时候。以 MySQL 8.0 为例一个能顺利连接的完整 JDBC URL 大致长这样jdbc:mysql://localhost:3306/app_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue逐个解释参数的作用serverTimezoneMySQL 8.0 的驱动在连接时会检查服务端时区不设置的话可能报 The server time zone value Öйú±ê׼ʱ¼ä is unrecognized这其实是中文系统下时区名乱码导致的指定为 Asia/Shanghai 即可。useSSLfalse本地开发环境一般没有配置 SSL 证书设置 false 可以跳过 SSL 握手。不设置的话MySQL 8.0 默认可能尝试 SSL 加密导致警告或连接失败。allowPublicKeyRetrievaltrueMySQL 8.0 默认使用 caching_sha2_password 插件JDBC 驱动首次连接时需要使用 RSA 公钥加密密码。如果不允许检索公钥会报 Public Key Retrieval is not allowed。开发环境直接设置为 true 最省事。useUnicodetruecharacterEncodingutf8为了保证中文不乱码连接时明确告诉驱动使用 UTF-8 编码传输数据。如果你建的库是 utf8mb4 字符集这里的 characterEncoding 写成 UTF-8 或 utf8mb4 都可以驱动会做映射。这些参数本身不会造成 Unknown database但如果你手动修改 URL 时把参数拼错比如缺一个问号或者 符号写成了中文标点整个 URL 解析失败也会报各种奇怪的错误。建议在 IDEA 里通过界面字段自动生成 URL再追加参数不要整串手打。3.4 测试连接的正确姿势与 Schema 选项卡用法字段填完后点 Test Connection 进行验证。如果通过IDEA 会提示 Connection successful说明数据源配置没问题如果失败弹出的错误信息会自动带上具体原因。测试连接成功不代表你可以马上看到表。IDEA 的 Database 面板里有个 Schema 选项卡默认可能只加载选中的库也可能加载所有库。对于 MySQL 来说schema 就是 database两者是同一个概念。如果你有多个库建议在 Schema 选项卡里只勾选当前项目需要的那几个减少加载时间也能避免 IDEA 在显示表结构时因为某些库无权限而弹警告。在 General 选项卡的 Database 字段里填了库名之后IDEA 通常会自动在 Schema 选项卡里勾选这个库。如果没勾选你连接后展开数据源可能会看到库列表是空的但测试连接又显示成功很迷惑。解决办法是在 Schema 选项卡里找到你要用的库勾选它Apply 之后库和表就会出现在左侧树里。还有一个小技巧IDEA 左上角可以切换数据源的显示名称。默认是 URL 的 Host 加 Port比如 localhostlocalhost你可以右键重命名为项目名比如 课程设计-student多数据源项目里这样管理起来非常清晰。3.5 用“命令行对比法”快速锁定问题在哪一端这个方法我反复用几乎每次都能在三分钟内定位 Unknown database 的根因。假设 IDEA 里报错 Unknown database myshop你打开终端执行mysql -h127.0.0.1 -P3306 -uroot -p然后输入SHOW DATABASES; USE myshop;如果 USE myshop 报 ERROR 1049 (42000): Unknown database myshop那问题在服务端和 IDEA 无关按第二章排查库名、大小写、实例和权限。如果 USE myshop 正常进入再执行 SELECT 1 查询说明服务端一切正常问题在 IDEA 配置按第三章检查 Database 字段、URL 和 Schema 选项卡。这个方法的核心逻辑是把“服务端事实”和“客户端配置”分开。服务端事实不以 IDEA 为准命令行是最直接的验证工具。很多同学在 IDEA 里反复改配置却忽略了一个最简单的事实先确认库真的存在再去折腾配置。4. 高频报错速查与避坑记录4.1 整理成速查表6 个高频报错对应的处理我把 IDEA 连接数据库时高频出现的报错整理成了一张速查表覆盖了大多数情况。报错信息原因处理方式Unknown database xxx库不存在、拼写错误、大小写、无权限、连错实例命令行执行 SHOW DATABASES 核对检查大小写和端口Access denied for user rootlocalhost密码错误或账号无远程连接权限核对密码检查 % 授权Connection refused端口错误或 MySQL 未启动或者 Docker 端口映射不对检查端口、确认服务运行、查看映射关系Public Key Retrieval is not allowedMySQL 8.0 认证方式需要公钥检索URL 加 allowPublicKeyRetrievaltrueThe server time zone value is unrecognized时区设置缺失或乱码URL 加 serverTimezoneAsia/ShanghaiFailed to load driver class com.mysql.cj.jdbc.DriverIDEA 选用的驱动类型和 URL 不匹配Driver 下拉框换成 MySQL Connector/J 8.x或者换 5.1 驱动注意表格里的前三个报错是“连接层”或“认证层”的后面三个是“会话层”的。Unknown database 出现在会话准备阶段如果你看到的是 Access denied 或 Connection refused那说明连接都没建立成功还轮不到库名检查先解决连接问题再说。4.2 连接成功但还是用不了看不到表、中文乱码、字符集连接成功并不能保证后续开发顺畅。我遇到过几次“能连上但 IDEA 左侧树看不到表”的情况原因基本都是 Schema 选项卡没有勾选目标库。前面说过MySQL 的 database 在 IDEA 中对应 schema。如果最左边的 Default Schema 是空或者默认勾选到了一个空的库那展开数据库树后自然看不到表。解决方法是在 Data Source 的配置界面找到 Schema 选项卡勾选你要显示的库然后 Apply。还有一种情况是表的缓存问题IDEA 会对数据库结构做缓存如果你在服务器上用命令行建了新表但 IDEA 左侧看不到右键数据源选择 Refresh 或者按 CtrlF5 重新加载即可。中文乱码问题相对独立但容易被误认成数据源配置错误。如果你查询出来的中文显示为问号或者乱码先看 JDBC URL 里有没有 characterEncodingutf8再看库本身的字符集。建议建库时直接使用 utf8mb4因为 MySQL 的 utf8 字符集实际上无法完整支持部分 emoji 和生僻字utf8mb4 才是完整的 UTF-8 编码。建库语句可以用下面这条CREATE DATABASE IF NOT EXISTS app_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;在课程设计或者团队协作项目里统一的字符集约定能避免很多隐蔽的“数据源没问题但数据乱码”的问题。4.3 驱动版本选择不匹配时会出现什么怪问题IDEA 的 Driver 下拉框有多个选项常见的是 MySQL Connector/J 8.0.13 之类的版本号或者直接使用系统自带的驱动。经验是MySQL 服务端 8.0 用 Connector/J 8.xMySQL 服务端 5.7 用 5.1.x 或 8.x 都行。驱动版本不匹配的问题往往不是直接报 Unknown database而是出现一些莫名其妙的错误。比如用 5.1.47 连 MySQL 8.0可能会在建立连接时报 Communications link failure或者 SSL 握手失败用 8.0.x 驱动连 MySQL 5.6又可能因为 MySQL 5.6 不支持某些新的认证协议报 Access denied。如果你使用了 Maven 依赖IDEA 数据源配置里也可以选择 Use provided driver jar 或下载官方驱动。我推荐直接让 IDEA 管理驱动它会在后台下载对应版本的 Connector/J并且在数据库连接失败时给出相对明确的错误提示。如果你手动指定 jar要确认 jar 里的主类和 URL 前缀匹配尤其是 mysql-connector-java 和 mysql-connector-j 的包名类名差异IDEA 有时候会因为你手动指定了老的 jar 导致驱动无法加载。4.4 验证过的 URL 直接迁移到 Spring Boot 多数据源配置IDEA 数据源配置的本质就是一条 JDBC URL 加账号信息。你在这个界面里验证通过的 URL几乎可以直接搬到 Spring Boot 的配置文件里不需要重新分析。举个例子你在 IDEA 里填的 URL 是jdbc:mysql://localhost:3306/order_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue那么 Spring Boot 的 application.yml 里这样写spring: datasource: url: jdbc:mysql://localhost:3306/order_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver多数据源配置时只要把两套数据源的 url、username、password 分开设置再用 ConfigurationProperties 绑定到不同的 DataSource Bean 上即可。这里最容易犯的错误是把第一个数据源的库名复制到第二个数据源的 URL 里导致项目启动报 Unknown database逻辑和 IDEA 里一模一样。所以我的习惯是先在 IDEA 里分别用两个数据源测试连接成功确认无误后再把两条 URL 复制到配置文件里这样能少踩很多坑。数据库同步工具比如 Navicat、DataGrip、一些同步插件的数据源配置思路也完全一致本质上都是 JDBC 驱动加 URL。你在 IDEA 里排通了换到任何客户端工具都畅通无阻。5. 两个真实案例复盘从报错到解决的全过程5.1 课程设计脚本只导入了一部分有一次帮一个学弟看课程设计他的项目是基于 SSM 框架的图书管理系统IDEA 里配置数据源时报 Unknown database library截图给我看的时候他已经把 URL 改了几十遍甚至重装了 IDEA。我问他命令行执行过 USE library 吗他说没有。我在他的电脑上打开终端登录 MySQL执行 SHOW DATABASES; 结果发现数据库列表里根本没有 library只有 information_schema、mysql、performance_schema 和 test。再问他你的 .sql 文件是怎么导入的他说是直接用 IDEA 打开 .sql 文件然后把所有语句复制到查询控制台执行。问题就出在这里他复制的前半段语句是 CREATE DATABASE library但执行时可能出错了或者由于脚本乱码建库语句被注释掉了只有后面的 CREATE TABLE 语句成功执行了。解决方法是重新执行建库语句CREATE DATABASE IF NOT EXISTS library DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;然后 USE library; 再把表语句重新导入最后在 IDEA 里把 Database 字段改成 library测试连接就成功了。这个案例里真正的问题不在 IDEA而是脚本导入不完整。所以再强调一遍出现 Unknown database第一反应应该是去 MySQL 里看库是否存在而不是反复重启 IDEA。5.2 Docker 里 MySQL 的端口映射没对上另一个案例来自一个 Spring Boot 多数据源项目的部署阶段开发同学在本地 IDE 里连数据库一切正常部署测试环境后应用日志里持续报 Unknown database report_db。我先看了测试环境服务器上跑的 Docker 容器启动命令是docker run -d -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASEaccount_db \ mysql:8.0这个容器里只初始化了 account_db而应用配置里主数据源连 account_db 正常第二个数据源连 report_db但这个 report_db 从来没有在容器里创建过所以报 Unknown database report_db。解决方法是进入容器创建 report_db或者通过 -e MYSQL_DATABASE 参数重建容器也可以用一个 SQL 初始化脚本挂载到 /docker-entrypoint-initdb.d 目录下。我当时的处理更直接在容器内执行了 CREATE DATABASE report_db然后重新导入表结构应用重启后问题消失。这个案例同时涉及两个信息Docker 容器只初始化了声明的库其他库不会自动存在多数据源项目里每个数据源的 URL 库名必须对应用服务器上实际存在的库。如果你在 IDEA 里用 3307 端口连接这个容器也一样会先看到 account_db 在report_db 不在报错信息一模一样。5.3 从案例中提炼出的通用排查套路案例复盘看多了就能提炼出一套通用的排查套路我称之为“三步定位法”。第一步验证服务端。命令行登录 MySQLSHOW DATABASES; 看库是否存在USE 目标库看是否报错。这一步把问题锁定在“服务端”还是“客户端”。第二步校验连接细节。确认端口、实例、容器映射确认账号对该库有权限确认库名大小写在当前系统下是否敏感。第三步校验客户端配置。检查 IDEA 的 Driver 类型、Database 字段、URL 参数、Schema 勾选确保两处库名一致。三步走下来没有解决不了的 Unknown database。这个方法不仅适用于 IDEA换到任何数据库客户端、任何编程语言思路都是通用的。数据库连接出问题本质上就是“服务端有没有、权限允不允许、客户端配得对不对”三个问题。结尾一点个人体会排查 Unknown database 这个报错我最大的体会是不要被 IDEA 的弹窗带着走。很多时候错误信息看起来很吓人其实只是 MySQL 说“这个库不存在”你只需要回到命令行确认一下库的真实名字问题就解决了一半。真正容易让人栽跟头的地方反而是那些平时不注意的小细节——Linux 下的大小写敏感、Docker 的端口映射、多个 MySQL 实例混装、授权范围不匹配。这些坑一旦踩过一次记下来后面再遇到就能一眼认出。最后再分享一个小技巧无论你在 IDEA 里配的是哪套数据源都顺手把验证通过的完整 URL 复制保存到一个文档里后面写 Spring Boot 配置、换数据库同步工具、换同事的电脑都能直接复用节省大量时间。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门