温馨提示×

Ubuntu C++连接数据库吗

小樊
47
2026-10-17 02:23:06
栏目: 编程语言

可以的。Ubuntu 下用 C++ 连接数据库是完全支持的,具体方式取决于你用的是哪种数据库。下面给你一个常见总结和示例。


一、常见数据库及 C++ 连接方式

1️⃣ MySQL / MariaDB

常用库:

  • libmysqlclient(官方 C API)
  • MySQL Connector/C++(面向对象)

安装:

sudo apt update
sudo apt install libmysqlclient-dev

简单示例(C API):

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

int main() {
    MYSQL* conn = mysql_init(nullptr);
    if (!mysql_real_connect(conn, "localhost", "user", "password",
                            "dbname", 0, nullptr, 0)) {
        std::cerr << mysql_error(conn) << std::endl;
        return 1;
    }
    std::cout << "Connected to MySQL!" << std::endl;
    mysql_close(conn);
}

编译:

g++ test.cpp -o test -lmysqlclient

2️⃣ PostgreSQL

常用库:

  • libpqxx(C++ 封装)
  • libpq(C API)

安装:

sudo apt install libpqxx-dev

示例:

#include <pqxx/pqxx>
#include <iostream>

int main() {
    pqxx::connection conn("dbname=test user=postgres password=123456");
    std::cout << "Connected to PostgreSQL!" << std::endl;
}

编译:

g++ test.cpp -o test -lpqxx -lpq

3️⃣ SQLite

特点:

  • 文件数据库,无需服务
  • 非常适合本地/嵌入式

安装:

sudo apt install libsqlite3-dev

示例:

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

int main() {
    sqlite3* db;
    if (sqlite3_open("test.db", &db) != SQLITE_OK) {
        std::cerr << "Cannot open DB" << std::endl;
        return 1;
    }
    std::cout << "SQLite OK" << std::endl;
    sqlite3_close(db);
}

4️⃣ 通用方式(ODBC)

如果你的程序要支持多种数据库,可以用:

  • unixODBC
  • ODBC + C++

适合企业级应用。


二、推荐选择

场景 推荐
Web 后端 MySQL / PostgreSQL
本地程序 SQLite
多数据库兼容 ODBC
现代 C++ Connector/C++ / pqxx

三、如果你愿意,我可以:

  • ✅ 给你 完整可运行示例
  • ✅ 帮你 配置 CMake
  • ✅ 教你 连接远程数据库
  • ✅ 解决 Ubuntu 连接报错

你用的是 哪种数据库?

0 踩