当前位置: 首页 > news >正文

DuckDB - Installation on Windows

在 Windows 上安装 DuckDB 分为 CLI 工具(用于调试)Go 驱动(用于开发) 两个部分:


1. 安装 DuckDB 命令行工具 (CLI) —— 调试利器

你可以通过以下两种方式之一快速安装:

方法 A:使用包管理器(最推荐,自动配置环境变量)

如果你安装了 winget(Windows 10/11 自带):

winget install DuckDB.DuckDB

或者使用 scoop

scoop install duckdb

方法 B:手动下载

  1. 前往 DuckDB 官网下载页。

  2. 下载 Windows AMD64 的 ZIP 包。

  3. 解压后你会得到一个 duckdb.exe

  4. 关键步骤: 将该文件所在的文件夹路径添加到系统的 环境变量 Path 中,这样你就能在任何 CMD 或 PowerShell 窗口输入 duckdb 直接使用了。


2. 在 Go 项目中安装驱动 (准备 C 编译环境)

这是 Windows 开发者最容易卡住的地方。由于 go-duckdb 驱动使用了 CGO,它需要一个 C 编译器来链接 DuckDB 的静态库。

第一步:安装 C 编译器 (GCC)

Go 在 Windows 上通常配合 MinGW-w64 使用。

  1. 下载 MSYS2 并安装。

  2. 打开 MSYS2 UCRT64 终端,输入以下命令安装 GCC 链:

    pacman -S mingw-w64-ucrt-x86_64-gcc
    
  3. C:\msys64\ucrt64\bin 添加到你的系统 环境变量 Path 中。

  4. 验证:在 PowerShell 输入 gcc --version,看到版本号即成功。

第二步:引入 Go 驱动

在你的项目根目录下运行:

go get github.com/marcboeker/go-duckdb

3. 验证开发环境是否通畅

你可以写一个极其简单的 test.go 来测试 CGO 链接是否正常:

package mainimport ("database/sql""fmt"_ "github.com/marcboeker/go-duckdb"
)func main() {db, err := sql.Open("duckdb", "") // 使用内存数据库测试if err != nil {fmt.Println("连接失败:", err)return}defer db.Close()var version stringerr = db.QueryRow("SELECT version()").Scan(&version)if err != nil {fmt.Println("查询失败:", err)return}fmt.Printf("恭喜!DuckDB 环境就绪,版本号: %s\n", version)
}

运行 go run test.go。如果能打印出版本号,说明你的 Windows 开发环境已经完全打通了。