破案了!🎯 真正的死因终于找到了:
Caused by: com.mysql.cj.exceptions.CJException: Unknown database 'newbee_mall_db'
这说明你的 Java 程序成功连上了 Docker 里的 MySQL,但是MySQL 里面根本没有newbee_mall_db这个数据库!这是一个空库。
🛠️ 解决方法(只需 3 步):
第一步:进入 Docker 容器并登录数据库
docker exec -it mysql-server bash mysql -u root -p123456第二步:创建数据库
在mysql>提示符下执行以下 SQL 语句建库:
CREATE DATABASE IF NOT EXISTS newbee_mall_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;(注:如果你的配置文件里写的不是newbee_mall_db,请换成你配置文件中实际写的名字)
第三步:导入初始化数据(非常关键!)
光建一个空库是不行的,商城还需要表结构和初始数据。新蜂商城项目源码中通常自带了一个.sql文件(一般在项目的sql/目录下,或者叫newbee_mall_schema.sql)。
你需要把这个 SQL 文件上传到服务器上,然后在这个mysql>界面下导入:
use newbee_mall_db; source /你上传的SQL文件的绝对路径/newbee_mall_schema.sql;如果嫌麻烦,你也可以先退出 MySQL(输入exit),回到宿主机命令行直接用一条命令导入:
# 假设你把 sql 文件放在了 /etc/nginx/java/ 目录下 docker cp /etc/nginx/java/newbee_mall_schema.sql mysql-server:/tmp/newbee_mall_schema.sql docker exec -it mysql-server mysql -u root -p123456 newbee_mall_db < /tmp/newbee_mall_schema.sql完成这三步后,不需要重启 Java 项目,直接刷新浏览器页面,你的新蜂商城就能正常显示了!快去试试吧!