You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mysql2连接时报ER_BAD_DB_ERROR未知数据库错误如何解决

解决方案

步骤1:创建缺失的目标数据库

你当前的报错ER_BAD_DB_ERROR明确指向本地MySQL中不存在.env配置里指定的usermanagement_tut数据库,先手动创建对应库:

  • 打开Windows的命令提示符/Powershell,执行命令登录MySQL:
    mysql -u root -p
    输入你配置的root密码rootpass完成登录
  • 执行SQL语句创建目标数据库:
    CREATE DATABASE usermanagement_tut CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • 执行退出命令:exit;

步骤2:导入数据库表结构和初始数据

你项目中已有预定义的sql文件,直接导入到刚创建的数据库中即可:

  • 同样在命令行中执行导入命令,注意替换为你本地sql文件的实际存放路径:
    导入表结构:mysql -u root -p usermanagement_tut < 你的本地路径/user-schema.sql
    导入初始数据:mysql -u root -p usermanagement_tut < 你的本地路径/ufc-fighters-data.sql
    按提示输入root密码即可完成导入。

步骤3:确认dotenv配置生效

很多场景下环境变量读取失败是因为遗漏了dotenv的加载配置,检查你的项目入口文件(一般为server.js/app.js),在文件最顶部添加如下代码:
require('dotenv').config()
另外你当前配置里端口的变量名DB_ROOT命名不规范,建议修改为DB_PORT,同时同步修改userController.js里的端口配置字段为port: process.env.DB_PORT,避免后续维护混淆。

步骤4:验证连接

完成以上操作后重新执行npm start启动项目,即可解决当前报错。

可选优化点

你代码中注释标注的是连接池,但实际用的是普通连接方法,如果要使用连接池提升性能,把mysql.createConnection改成mysql.createPool即可,两者基础用法完全一致。

内容的提问来源于stack exchange,提问作者mahnuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:06:04