全部产品
Search
文档中心

Lindorm:Gunakan C API untuk mengembangkan aplikasi

更新时间:Feb 04, 2026

Topik ini menjelaskan cara menggunakan C API untuk MySQL dalam pengembangan aplikasi C atau C++.

Prasyarat

Prosedur

  1. Instal dependensi C API untuk MySQL. Perintah berikut merupakan contoh instalasi dependensi C API untuk MySQL pada CentOS:

  2. yum install mysql-devel
  3. Konfigurasikan parameter koneksi.

    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;

    Parameter

    Parameter

    Deskripsi

    lindorm_addr

    Titik akhir LindormTable untuk MySQL. Untuk informasi selengkapnya tentang cara memperolehnya, lihat Lihat titik akhir.

    Penting
    • Jika aplikasi Anda dideploy pada Instance ECS, kami menyarankan Anda menggunakan VPC untuk menghubungkan ke instans Lindorm guna memastikan keamanan lebih tinggi dan latensi jaringan lebih rendah.

    • Jika aplikasi Anda dideploy secara on-premises, aktifkan akses jaringan publik di Konsol sebelum menghubungkan ke instans Lindorm melalui jaringan publik. Untuk melakukannya, di Konsol, pilih Database Connections > Wide Table Engine. Pada tab Wide Table Engine, klik Enable Public Endpoint.

    • Untuk mengakses instans Lindorm dari virtual private cloud (VPC), atur lindorm_addr ke alamat VPC yang kompatibel dengan MySQL. Untuk mengakses instans Lindorm dari jaringan publik, atur lindorm_addr ke alamat Internet yang kompatibel dengan MySQL.

    lindorm_user

    Jika Anda lupa password, Anda dapat mengganti password tersebut di sistem manajemen kluster LindormTable. Untuk informasi selengkapnya, lihat Kelola pengguna.

    lindorm_password

    database

    Nama database yang ingin Anda hubungkan. Secara default, client Anda terhubung ke database bernama default.

    lindorm_mysql_port

    Port yang digunakan untuk mengakses LindormTable menggunakan MySQL. Nilai parameter ini tetap 33060.

  4. Anda dapat membuat koneksi ke LindormTable untuk menggunakan sintaks SQL tabel lebar. Contoh berikut menunjukkan cara membuat tabel.

        // Buat koneksi.
        if (!mysql_real_connect(&conn,lindorm_addr,lindorm_user,lindorm_password,database,lindorm_mysql_port,NULL,0)) {
            printf("Gagal terhubung ke database: Error: %s\n",
                    mysql_error(&conn));
            exit(1);
        } else {
            printf("berhasil terhubung ke lindorm\n");
        }
    
    
        // Buat tabel.
        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("tabel berhasil dibuat\n");
        } else {
            printf("Error saat membuat tabel: %s\n", mysql_error(&conn));
            exit(1);
        }
  5. Untuk mengompilasi kode dalam file demo.c, jalankan perintah berikut.

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

Contoh lengkap

Berikut adalah kode contoh lengkap:

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

    // Konfigurasi koneksi.
    char lindorm_addr[] = "ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com"; // Titik akhir LindormTable untuk MySQL
    char lindorm_user[] = "user"; // Username untuk LindormTable
    char lindorm_password[] = "test"; // Password untuk LindormTable
    char database[] = "default"; // Nama database yang akan dihubungkan
    int lindorm_mysql_port = 33060; // Port protokol MySQL untuk LindormTable (tetap 33060)

    // Buat koneksi.
    if (!mysql_real_connect(&conn,lindorm_addr,lindorm_user,lindorm_password,database,lindorm_mysql_port,NULL,0)) {
        printf("Gagal terhubung ke database: Error: %s\n",
                mysql_error(&conn));
        exit(1);
    } else {
        printf("conect lindorm successfully\n");
    }


    // Buat tabel.
    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);
    }

    // Masukkan data.
    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);
    }

    // Kueri data.
    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;
}

Hasil berikut dikembalikan:

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