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

dbt run报错DBT-1046(3D000):未选择数据库,如何解决?

解决dbt连接MySQL时"No database selected"错误的方法

1. 确认目标数据库已创建

先登录本地MySQL客户端,执行以下命令创建puddle数据库(如果还未创建):

CREATE DATABASE puddle;

报错提示"没有选择数据库",大概率是目标数据库不存在,或者配置里指定的数据库名称有误。

2. 修正profiles.yml配置

MySQL的schema机制和PostgreSQL等数据库不同,dbt的MySQL5适配器不需要同时配置database、dbname和schema,多余配置会导致识别混乱。将dev环境的配置修改为:

puddle:
  target: dev
  outputs:
    dev:
      type: mysql5
      server: localhost
      port: 3306
      database: puddle
      username: test
      password: test
      driver: MySQL ODBC 8.0 ANSI Driver
    prod:
      type: mysql5
      server: [server/host]
      port: [port]
      database: [your_prod_database_name]
      username: [username]
      password: [password]
      driver: MySQL ODBC 8.0 ANSI Driver
  • 移除多余的dbname和schema字段,MySQL中dbt通过database参数指定要连接的数据库
  • 生产环境配置里,database要填写实际的生产数据库名称,不要保留[schema]这类占位符

3. 验证连接并重新执行

执行dbt debug命令测试配置是否能正常连接到MySQL数据库:

dbt debug

如果所有检查项都通过,再执行dbt run即可正常创建模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:01:11