温馨提示×

如何在Ubuntu连接C++数据库

小樊
38
2026-09-23 16:11:38
栏目: 编程语言

在 Ubuntu 上用 C++ 连接数据库,通常分三步:
1️⃣ 安装数据库与开发库
2️⃣ 安装 C++ 数据库连接库
3️⃣ 编写并编译 C++ 代码

下面以 MySQL 和 SQLite 为例(最常见)。


一、C++ 连接 MySQL(最常用)

1. 安装 MySQL 及开发库

sudo apt update
sudo apt install mysql-server
sudo apt install libmysqlclient-dev

2. 示例 C++ 代码(MySQL)

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

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

    conn = mysql_real_connect(
        conn,
        "localhost",
        "user",
        "password",
        "dbname",
        0, nullptr, 0
    );

    if (!conn) {
        std::cerr << mysql_error(conn) << "\n";
        return 1;
    }

    std::cout << "Connected to MySQL!\n";

    mysql_close(conn);
    return 0;
}

3. 编译

g++ main.cpp -o main -lmysqlclient

二、C++ 连接 SQLite(轻量级,无需服务)

1. 安装 SQLite 开发库

sudo apt install libsqlite3-dev

2. 示例 C++ 代码(SQLite)

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

int main() {
    sqlite3 *db;
    if (sqlite3_open("test.db", &db)) {
        std::cerr << "Can't open database\n";
        return 1;
    }

    std::cout << "Opened SQLite database\n";
    sqlite3_close(db);
    return 0;
}

3. 编译

g++ main.cpp -o main -lsqlite3

三、C++ 连接 PostgreSQL(可选)

sudo apt install libpq-dev
#include <libpq-fe.h>

编译:

g++ main.cpp -o main -lpq

四、推荐的现代方案(跨数据库)

  • ODBC(unixODBC + odbc)
  • ORM 框架
    • SOCI
    • ODB
    • sqlpp11

五、常见问题

✅ 连接失败:检查用户名、密码、数据库是否存在
✅ 编译报错:确认 -l 链接库是否正确
✅ 权限问题:MySQL 用户需有 localhost 访问权限


如果你告诉我:

  • 用的是 哪种数据库
  • 是否需要 ORM / 多线程 / Qt

我可以给你更具体的示例代码。

0 踩