在 C 语言中操作 MySQL 数据库 —— 基于 libmysql 的入门示例
该库提供了我们通过使用的 MySQL C API。
·
一、环境准备
安装 MySQL 客户端开发库
在 Ubuntu 系统下执行以下命令安装:
sudo apt update
sudo apt install libmysqlclient-dev
该库提供了我们通过 #include <mysql.h> 使用的 MySQL C API。
二、C 代码示例:插入用户数据
以下是一个完整的 C 程序,向远程 MySQL 数据库插入一条用户记录:
#include <mysql.h>
#include <string.h>
#include <stdio.h>
// MySQL服务器的IP地址
#define KING_DB_SERVER_IP "10.0.0.129"
// MySQL服务器端口号,默认是3306
#define KING_DB_SERVER_PORT 3306
// 数据库用户名
#define KING_DB_USERNAME "admin"
// 数据库密码
#define KING_DB_PASSWORD "123456"
// 默认连接的数据库名称
#define KING_DB_DEFAULTDB "KING_DB"
// 要执行的SQL插入语句,向TBL_USER表插入一条数据
#define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME,U_GENGDER) VALUES('mianqian','woman');"
int main() {
MYSQL mysql;
// 初始化MySQL对象,返回NULL表示初始化失败
if(NULL == mysql_init(&mysql)){
printf("mysql_init : %s\n", mysql_error(&mysql));
return -1; // 初始化失败,程序退出
}
// 连接MySQL数据库,参数依次为:
// MYSQL结构体指针,服务器IP,用户名,密码,数据库名,端口号,socket,flags
if(!mysql_real_connect(&mysql, KING_DB_SERVER_IP, KING_DB_USERNAME, KING_DB_PASSWORD,
KING_DB_DEFAULTDB, KING_DB_SERVER_PORT, NULL, 0)) {
// 连接失败,打印错误信息并退出
printf("mysql_real_connect : %s\n", mysql_error(&mysql));
return -2;
}
// 执行SQL查询语句
// 参数依次为:MYSQL结构体指针,SQL语句字符串,字符串长度
if(mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))) {
// 查询失败,打印错误信息并退出
printf("mysql_real_query : %s\n", mysql_error(&mysql));
return -3;
}
// 关闭MySQL连接,释放资源
mysql_close(&mysql);
return 0; // 程序成功结束
}
三、代码讲解
-
mysql_init():初始化 MYSQL 结构体; -
mysql_real_connect():连接数据库,注意 IP、端口、用户名、密码、数据库名需正确;注意这个返回的成功的值为1,而不是0. -
mysql_real_query():执行 SQL 语句,这里是插入一条用户记录; -
mysql_close():断开数据库连接。
四、编译与运行
1. 编译命令
gcc mysql_test.c -o mysql_test -lmysqlclient
确保你的 .c 文件命名正确,库路径配置无误。
2. 运行程序
./mysql_test
如输出无错误,即成功插入数据。
五、MySQL Workbench 配置说明
为了使该程序能远程连接数据库,MySQL 服务端需要做如下设置:
1. 创建用户
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意不要直接使用 root@localhost,要允许远程连接的 admin@%。
2. 修改配置文件(如 /etc/mysql/mysql.conf.d/mysqld.cnf)
确保注释或修改如下项:
bind-address = 0.0.0.0
然后重启服务:
sudo systemctl restart mysql
3.查看表格
接下来就可以在Workbench通过以下命令查看添加的项:
SELECT * FROM TBL_USER;
更多推荐

所有评论(0)