温馨提示×

centos下c++怎么连接数据库

小樊
41
2026-09-09 01:04:39
栏目: 编程语言

CentOS 下用 C++ 连接数据库,常见方式取决于你用哪种数据库。下面以 MySQL / MariaDBPostgreSQL 为例,给你最实用的做法。


一、C++ 连接 MySQL / MariaDB(最常见)

1. 安装开发库

# CentOS 7
yum install -y mysql-devel

# CentOS 8 / Stream
dnf install -y mysql-devel

2. 示例代码(使用 MySQL C API)

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

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

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

    if (mysql_query(conn, "SELECT 1")) {
        std::cerr << mysql_error(conn) << std::endl;
    }

    mysql_close(conn);
    return 0;
}

3. 编译

g++ test.cpp -o test -lmysqlclient

二、C++ 连接 PostgreSQL

1. 安装开发库

yum install -y postgresql-devel

2. 示例代码(libpq)

#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;
    }

    PGresult* res = PQexec(conn, "SELECT 1");
    PQclear(res);
    PQfinish(conn);
    return 0;
}

3. 编译

g++ test.cpp -o test -lpq

三、更现代的 C++ 方式(推荐)

1. MySQL ++(封装更好)

yum install -y mysql++-devel

2. ODBC(跨数据库)

yum install -y unixODBC-devel

3. 第三方库(跨平台、好用)

  • SQLite3(轻量)
  • SOCI
  • ODBC + C++
  • Qt SQL(如果用 Qt)

四、常见问题

1. 找不到 mysql.h

yum install mysql-devel

2. 连接被拒绝

  • 检查 mysqld 是否运行
  • 检查防火墙
  • 检查用户权限

3. CentOS 8 没有 mysql-devel

dnf install mariadb-devel

五、你可以告诉我

  • 哪种数据库(MySQL / PostgreSQL / Oracle / SQLite)
  • 是否 必须纯 C++ / 可用第三方库
  • CentOS 7 还是 8

我可以给你更精准的示例和 Makefile / CMake 配置。

0