日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于C API的應(yīng)用開發(fā)

本文介紹基于C或C++語言,通過MySQL C-API進(jìn)行應(yīng)用開發(fā)的方法。

前提條件

操作步驟

  1. 安裝MySQL C-API相關(guān)依賴。以CentOS系統(tǒng)為例,執(zhí)行以下命令:

  2. yum install mysql-devel
  3. 配置連接參數(shù)。

    char lindorm_addr[] = "ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com";
    char lindorm_user[] = "user";
    char lindorm_password[] = "test";
    char database[] = "default";
    int lindorm_mysql_port = 33060;

    參數(shù)說明

    參數(shù)

    說明

    lindorm_addr

    Lindorm寬表引擎的MySQL兼容地址。如何獲取MySQL兼容地址,請參見查看連接地址

    重要
    • 如果應(yīng)用部署在ECS實(shí)例,建議您通過專有網(wǎng)絡(luò)訪問Lindorm實(shí)例,可獲得更高的安全性和更低的網(wǎng)絡(luò)延遲。

    • 如果應(yīng)用部署在本地,在通過公網(wǎng)連接Lindorm實(shí)例前,需在控制臺開通公網(wǎng)地址。開通方式:在控制臺選擇數(shù)據(jù)庫連接 > 寬表引擎,在寬表引擎頁簽單擊開通公網(wǎng)地址

    • 通過專有網(wǎng)絡(luò)訪問Lindorm實(shí)例,lindorm_addr請?zhí)顚慚ySQL兼容地址對應(yīng)的專有網(wǎng)絡(luò)地址。通過公網(wǎng)訪問Lindorm實(shí)例,lindorm_addr請?zhí)顚慚ySQL兼容地址對應(yīng)的公網(wǎng)地址。

    lindorm_user

    如果您忘記用戶密碼,可以通過Lindorm寬表引擎的集群管理系統(tǒng)修改密碼。具體操作,請參見修改用戶密碼

    lindorm_password

    database

    需要連接的數(shù)據(jù)庫名稱。默認(rèn)連接default數(shù)據(jù)庫。

    lindorm_mysql_port

    Lindorm寬表引擎MySQL協(xié)議的端口,固定為33060。

  4. 創(chuàng)建連接,通過寬表SQL語法使用Lindorm寬表引擎。以創(chuàng)建表為例。

        // 創(chuàng)建連接
        if (!mysql_real_connect(&conn,lindorm_addr,lindorm_user,lindorm_password,database,lindorm_mysql_port,NULL,0)) {
            printf("Failed to connect to database: Error: %s\n",
                    mysql_error(&conn));
            exit(1);
        } else {
            printf("conect lindorm successfully\n");
        }
    
    
        // 創(chuàng)建表
        char create_table[] = "create table if not exists user_test(id int, name varchar,age int, primary key(id))";
        res = mysql_query(&conn, create_table);
        if (!res) {
            printf("create table successfully\n");
        } else {
            printf("create table Error: %s\n", mysql_error(&conn));
            exit(1);
        }
  5. 假設(shè)代碼保存在demo.c文件中,執(zhí)行以下命令,編譯代碼。

    gcc -o a.out $(mysql_config --cflags) demo.c $(mysql_config --libs)
    ./a.out

完整示例

完整示例代碼如下:

#include <stdio.h>
#include "mysql/mysql.h"
int main(){
    MYSQL conn;
    int res;
    MYSQL_RES * result;
    MYSQL_ROW row;
    mysql_init(&conn);

    // 連接配置
    char lindorm_addr[] = "ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com"; //Lindorm寬表引擎的MySQL兼容地址
    char lindorm_user[] = "user"; //Lindorm寬表引擎的用戶名
    char lindorm_password[] = "test"; //Lindorm寬表引擎的密碼
    char database[] = "default"; //需要連接的數(shù)據(jù)庫名稱
    int lindorm_mysql_port = 33060; //Lindorm寬表引擎MySQL協(xié)議的端口,固定為33060

    // 創(chuàng)建連接
    if (!mysql_real_connect(&conn,lindorm_addr,lindorm_user,lindorm_password,database,lindorm_mysql_port,NULL,0)) {
        printf("Failed to connect to database: Error: %s\n",
                mysql_error(&conn));
        exit(1);
    } else {
        printf("conect lindorm successfully\n");
    }


    // 創(chuàng)建表
    char create_table[] = "create table if not exists user_test(id int, name varchar,age int, primary key(id))";
    res = mysql_query(&conn, create_table);
    if (!res) {
        printf("create table successfully\n");
    } else {
        printf("create table Error: %s\n", mysql_error(&conn));
        exit(1);
    }

    // 插入數(shù)據(jù)
    char insert_data[] = "upsert into user_test(id,name,age) values(3,'wangwu',23)";
    res = mysql_query(&conn, insert_data);
    if (!res) {
        printf("insert data successfully\n");
    } else {
        printf("insert data Error: %s\n", mysql_error(&conn));
        exit(1);
    }

    // 查詢數(shù)據(jù)
    char select_query[] = "select * from user_test";
    if (mysql_query(&conn, select_query) != 0) {
        printf("select Error: %s\n", mysql_error(&conn));
        exit(1);
    } else {
        if ((result = mysql_store_result(&conn)) == NULL) {
            printf("store result Error: %s\n", mysql_error(&conn));
            exit(1);
        }
        else {
            while ((row = mysql_fetch_row(result)) != NULL) {
                printf("name is %s , ", row[0]);
                printf("age is %s\n", row[1]);
            }
        }
    }

    return 0;
}

執(zhí)行成功后將返回如下結(jié)果:

conect lindorm successfully
create table successfully
insert data successfully
name is 3 , age is wangwu