以下是一个使用C通过HAProxy连接TiDB的示例代码:
#include <stdio.h>
#include <mysql/mysql.h>
int main() {
MYSQL *con = mysql_init(NULL);
// 建立与HAProxy的连接
if (mysql_real_connect(con, "haproxy_ip", "username", "password", NULL, 0, NULL, 0) == NULL) {
fprintf(stderr, "Failed to connect to HAProxy: %s\n", mysql_error(con));
return 1;
}
// 选择要连接的数据库
if (mysql_query(con, "USE database_name")) {
fprintf(stderr, "Failed to select database: %s\n", mysql_error(con));
return 1;
}
// 执行SQL查询
if (mysql_query(con, "SELECT * FROM table_name")) {
fprintf(stderr, "Failed to execute query: %s\n", mysql_error(con));
return 1;
}
MYSQL_RES *result = mysql_store_result(con);
if (result == NULL) {
fprintf(stderr, "Failed to get result set: %s\n", mysql_error(con));
return 1;
}
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);
// 关闭数据库连接
mysql_close(con);
return 0;
}
在上面的示例中,你需要将haproxy_ip替换为实际的HAProxy服务器IP地址,username和password替换为用于连接TiDB的凭据信息。然后,你可以根据需要修改数据库名称、表名和SQL查询语句。
请注意,此示例使用了MySQL C API来连接和操作TiDB数据库。你需要在编译时确保链接了MySQL C库,并且包含了相关头文件。
内容由零声教学AI助手提供,问题来源于学员提问




