钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读970841
首页 SQL 正文内容

c语言怎么连接sql数据库

钟逸 SQL 2025-07-17 00:14:17 4

安装 MySQL 服务器和连接库

第一步是安装 MySQL 服务器和连接 C 语言的库。对于 Windows 系统,可以从 MySQL 官方网站下载并安装。对于 Linux 系统,可以通过包管理器安装:

bash

Debian/Ubuntu

sudo apt-get update

sudo apt-get install mysql-server libmysqlclient-dev

CentOS/Red Hat

sudo yum update

sudo yum install mysql-server mysql-devel

配置 MySQL 服务器

安装完成后,需要配置 MySQL 服务器。启动服务器并使用 root 用户登录:

bash

sudo service mysql start

mysql -u root -p

创建用于连接数据库的数据库和用户:

sql

CREATE DATABASE database_name;

GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'host_ip' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

其中, database_name 是要创建的数据库名称, user_name 是要创建的用户名, password 是密码, host_ip 是允许连接的 IP 地址(可以设置为 % 允许所有 IP)。

C 语言连接数据库

在 C 语言中连接 MySQL 数据库需要使用连接库。对于 Linux 系统,通常使用 libmysqlclient ,对于 Windows 系统可以使用 mysql.h 头文件。

c

include

// 连接数据库

MYSQL *mysql_init(void);

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag);

// 执行查询

int mysql_query(MYSQL *mysql, const char *query);

// 获取查询结果

MYSQL_RES *mysql_store_result(MYSQL *mysql);

// 获取查询结果中的行

MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);

// 关闭连接

void mysql_close(MYSQL *mysql);

示例代码

以下是一个连接 MySQL 数据库并执行查询的示例代码:

c

include

int main() {

// 连接数据库

MYSQL *mysql = mysql_init(NULL);

if (!mysql_real_connect(mysql, "localhost", "user_name", "password", "database_name", 0, NULL, 0)) {

printf("Connection failed: %s\n", mysql_error(mysql));

return 1;

}

// 执行查询

if (mysql_query(mysql, "SELECT * FROM table_name")) {

printf("Query failed: %s\n", mysql_error(mysql));

mysql_close(mysql);

return 1;

}

// 获取查询结果

MYSQL_RES *res = mysql_store_result(mysql);

// 遍历结果

MYSQL_ROW row;

while ((row = mysql_fetch_row(res))) {

// 处理查询结果

printf("%s %s\n", row[0], row[1]);

}

// 关闭连接

mysql_close(mysql);

return 0;

}

通过这段代码,可以连接到 MySQL 数据库并执行一个 SELECT 查询,然后打印查询结果。

文章目录
    搜索