⌘K ctrl+k
Search Shortcut cmd + k | ctrl + k
ODBC API on macOS
  1. A driver manager is required to manage communication between applications and the ODBC driver. DuckDB supports unixODBC, which is a complete ODBC driver manager for macOS and Linux. Users can install it from the command line via Homebrew:

    brew install unixodbc
    
  2. DuckDB releases ODBC drivers for macOS on Apple Silicon (arm64) and Intel (x86_64) CPUs. To download the driver for Apple Silicon, run:

    wget https://github.com/duckdb/duckdb-odbc/releases/download/v2.0.0.0/duckdb_odbc-macos-arm64.zip
    

    To download the driver for Intel, run:

    wget https://github.com/duckdb/duckdb-odbc/releases/download/v2.0.0.0/duckdb_odbc-macos-amd64.zip
    
  3. The archive contains the libduckdb_odbc.dylib artifact. To extract it to a directory, run (on Intel, replace arm64 with amd64):

    mkdir duckdb_odbc && unzip duckdb_odbc-macos-arm64.zip -d duckdb_odbc
    
  4. There are two ways to configure the ODBC driver, either by initializing via the configuration files, or by connecting with SQLDriverConnect. A combination of the two is also possible.

    Furthermore, the ODBC driver supports all the configuration options included in DuckDB.

    If a configuration is set in both the connection string passed to SQLDriverConnect and in the odbc.ini file, the one passed to SQLDriverConnect will take precedence.

    For the details of the configuration parameters, see the ODBC configuration page.

  5. After the configuration, to validate the installation, it is possible to use an ODBC client. unixODBC uses a command line tool called isql.

    Use the DSN defined in odbc.ini as a parameter of isql.

    isql DuckDB
    
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | echo [string]                         |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    
    SQL> SELECT 42;
    
    +------------+
    | 42         |
    +------------+
    | 42         |
    +------------+
    
    SQLRowCount returns -1
    1 rows fetched
    
© 2026 DuckDB Foundation, Amsterdam NL
DuckDB Home Code of Conduct Trademark Use Blog