温馨提示×

linux c++怎么连接数据库

小樊
49
2026-07-05 19:00:02
栏目: 编程语言

在 Linux 下用 C++ 连接数据库,常见做法取决于你使用的是哪种数据库。下面我按最常用数据库给你一个清晰、实用的说明,并附上示例


一、常见数据库与对应方式

数据库 推荐方式
MySQL MySQL C API(libmysqlclient)
PostgreSQL libpq
SQLite SQLite3(单文件,最轻量)
Oracle OCI
通用方式 ODBC(unixODBC)

二、SQLite(最简单,推荐入门)

1️⃣ 安装

sudo apt install libsqlite3-dev

2️⃣ 示例代码(C++)

#include <iostream>
#include <sqlite3.h>

int main() {
    sqlite3* db;
    if (sqlite3_open("test.db", &db) != SQLITE_OK) {
        std::cerr << "无法打开数据库\n";
        return -1;
    }

    std::cout << "数据库打开成功\n";

    sqlite3_close(db);
    return 0;
}

3️⃣ 编译

g++ main.cpp -lsqlite3

优点:无需数据库服务、跨平台、适合嵌入式/小型项目


三、MySQL(企业项目最常见)

1️⃣ 安装

sudo apt install libmysqlclient-dev

2️⃣ 示例代码

#include <mysql/mysql.h>
#include <iostream>

int main() {
    MYSQL* conn = mysql_init(nullptr);
    if (!conn) {
        std::cerr << "mysql_init failed\n";
        return -1;
    }

    if (!mysql_real_connect(conn,
        "localhost",
        "user",
        "password",
        "testdb",
        3306,
        nullptr,
        0)) {
        std::cerr << mysql_error(conn) << std::endl;
        return -1;
    }

    std::cout << "MySQL 连接成功\n";

    mysql_close(conn);
    return 0;
}

3️⃣ 编译

g++ main.cpp -lmysqlclient

四、PostgreSQL

1️⃣ 安装

sudo apt install libpq-dev

2️⃣ 示例

#include <libpq-fe.h>
#include <iostream>

int main() {
    PGconn* conn = PQconnectdb("host=localhost dbname=test user=postgres password=123456");

    if (PQstatus(conn) != CONNECTION_OK) {
        std::cerr << PQerrorMessage(conn) << std::endl;
        return -1;
    }

    std::cout << "PostgreSQL 连接成功\n";
    PQfinish(conn);
    return 0;
}

3️⃣ 编译

g++ main.cpp -lpq

五、使用 ORM / 封装库(进阶)

如果你不想直接写 C API,可以用:

特点
libmysqlcppconn MySQL 官方 C++ 封装
soci 类似 ORM,支持多种数据库
ODBC + unixODBC 通用但复杂
Qt SQL Qt 项目首选

六、推荐选择(经验建议)

新手 / 工具程序 → SQLite
服务器 / Web 后端 → MySQL / PostgreSQL
跨数据库需求 → soci / ODBC


七、我可以继续帮你

你可以告诉我:

  1. 用的是 哪种数据库
  2. 服务器程序 / 桌面程序 / 嵌入式
  3. 是否需要 增删改查示例

我可以直接给你一个完整可运行项目模板

0