---
title: "MySQL Connector/C 连接 OB Cloud 云数据库示例程序 - OB Cloud 云数据库 master | OceanBase 文档中心"
description: MySQL Connector/C 连接 OB Cloud 云数据库示例程序 MySQL Connector/C 通常被称为 MySQL C API，它提供了一组 C 语言的函数和数据结构，允许开发人员使用 C/C++ 语言来连接、查询和管理 MySQL 数据库。这个 API 允许开发人员直接在其 C/C++ 应用程…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*qbZXRo_94ZEAAAAAAAAAAAAADiGDAQ/original) OB Cloud 云数据库

# MySQL Connector/C 连接 OB Cloud 云数据库示例程序

更新时间：2026-05-14 14:28:03

MySQL Connector/C 通常被称为 MySQL C API，它提供了一组 C 语言的函数和数据结构，允许开发人员使用 C/C++ 语言来连接、查询和管理 MySQL 数据库。这个 API 允许开发人员直接在其 C/C++ 应用程序中使用 MySQL 数据库。

本文将介绍如何使用 MySQL Connector/C (libmysqlclient) 驱动 和 OB Cloud 云数据库构建一个应用程序，实现创建表、插入数据和查询数据等基本操作。

## 前提条件

在安装使用 MySQL Connector/C (libmysqlclient) 前请确保设置了基本的数据库开发环境，要求如下：

- GCC 版本为 3.4.6 及以上，推荐使用 4.8.5 版本。
 - CMake 版本为 2.8.12 及以上。
 - 您已注册 OB Cloud 云数据库账号,并创建集群实例和 MySQL 兼容模式租户。详情请参见 [创建集群实例](https://www.oceanbase.com/docs/common-oceanbase-cloud-10000000001780086) 和 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-cloud-10000000001780107)。

## 操作步骤

1. 获取 OB Cloud 云数据库连接信息。
 2. 安装 MySQL Connector/C 驱动。
 3. 编写应用程序。
 4. 运行应用程序。

### 步骤一：获取数据库连接串

1. 登录 [OB Cloud 云数据库控制台](https://console-cn.oceanbase.com/)。在实例列表页面，展开目标实例的信息，在目标租户下，选择 **连接** > **获取连接串**。

   更多详细操作，请参见 [获取连接串](https://www.oceanbase.com/docs/common-oceanbase-cloud-10000000001781435)。
 2. 根据已创建的 OB Cloud 云数据库填写下面 URL 的对应信息。

   ```shell
   obclient -h$host -P$port -u$user_name -p$password -D$database_name

   ```

   **参数说明：**

      - `$host`：提供 OB Cloud 云数据库连接地址，例如 `t********.********.oceanbase.cloud`。
      - `$port`：提供 OB Cloud 云数据库连接端口，默认为 3306。
      - `$database_name`：需要访问的数据库名称。

       #### 注意

       连接租户的用户需要拥有该数据库的 `CREATE`、`INSERT`、`DROP` 和 `SELECT` 权限。更多有关账号权限的信息，请参见 [创建并管理账号](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000001018091)。
      - `$user_name`：提供访问数据库的账号。
      - `$password`：提供账户密码。

   **示例如下：**

   ```shell
   obclient -h t********.********.oceanbase.cloud -P3306 -u mysql001 -p****** -Dtest

   ```

### 步骤二：安装 MySQL Connector/C 驱动

```shell
## 在 Ubuntu 系统上请使用下面的代码进行安装：
sudo apt-get install libmysqlclient-dev

## 在 CentOS 系统上请使用下面的代码进行安装：
sudo yum install mysql-devel

## 确认是否安装成功
mysql_config --version

```

### 步骤三：编写应用程序

打开你的文本编辑器，在文本编辑器中编辑示例 `test.cc` 文件并保存，代码如下所示：

```
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>

int main() {
    MYSQL *conn = mysql_init(NULL); // 初始化MySQL连接

    if (conn == NULL) {
        fprintf(stderr, "mysql_init() failed\n");
        return 1;
    }

    // 连接到MySQL数据库服务器
    if (mysql_real_connect(conn, "host", "user", "passwd", "db", port, NULL, 0) == NULL) {
        fprintf(stderr, "mysql_real_connect() failed\n");
        mysql_close(conn);
        return 1;
    }

    // 创建用户表
    if (mysql_query(conn, "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255), PRIMARY KEY(id))") != 0) {
        fprintf(stderr, "Error in creating table: %s\n", mysql_error(conn));
        mysql_close(conn);
        return 1;
    }

    // 插入数据
    if (mysql_query(conn, "INSERT INTO users (name, email) VALUES ('小明', 'xiaoming@example.com')") != 0) {
        fprintf(stderr, "Error in inserting data: %s\n", mysql_error(conn));
        mysql_close(conn);
        return 1;
    }

    // 查询数据
    if (mysql_query(conn, "SELECT * FROM users") == 0) {
        MYSQL_RES *result = mysql_store_result(conn);
        if (result != NULL) {
            int num_fields = mysql_num_fields(result);
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(result))) {
                for (int i = 0; i < num_fields; i++) {
                    printf("%s ", row[i] ? row[i] : "NULL");
                }
                printf("\n");
            }
            mysql_free_result(result);
        } else {
            fprintf(stderr, "Error in retrieving result: %s\n", mysql_error(conn));
        }
    } else {
        fprintf(stderr, "Error in selecting data: %s\n", mysql_error(conn));
    }

    // 删除表
    if (mysql_query(conn, "DROP TABLE IF EXISTS users") != 0) {
    fprintf(stderr, "Error in dropping table: %s\n", mysql_error(conn));
    mysql_close(conn);
    return 1;
}
    mysql_close(conn); // 关闭连接
    return 0;
}

```

根据 **步骤一：获取 OB Cloud 云数据库连接信息** 中的信息修改项目文件 `test.cc` 中的数据库连接信息。

- 在 Linux 环境下，可以使用 `vi test.cc` 或者 `vim test.cc` 命令编辑 `test.cc` 文件，修改文件中的数据库连接信息，确保与实际情况相符。

**`test.cc` 文件中的数据库连接信息示例如下：**

```c
# 这部分连接信息需要修改为你所获取到连接串在的真实信息，示例如下
if (mysql_real_connect(conn, "t********.********.oceanbase.cloud", "mysql001", "********", "test", 3306, NULL, 0) == NULL) {
        fprintf(stderr, "mysql_real_connect() failed\n");
        mysql_close(conn);
        return 1;
    }

```

### 步骤四：编译应用程序

代码编辑完成后，可以通过如下命令进行编译。

```shell
gcc -o test test.cc `mysql_config --cflags --libs`

```

编译成功后，会生成可执行文件 `test`。

### 步骤五：运行应用程序

通过如下命令运行应用程序。

```shell
./test

```

输出结果如下，输出如下结果，说明数据库连接成功，示例语句正确执行。

```shell
1 小明 xiaoming@example.com

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
