69.笔记 MySQL学习——C编写MySQL程序二连接服务器
来源:互联网 发布:win10 dhcp服务器软件 编辑:程序博客网 时间:2024/06/14 09:02
69.笔记 MySQL学习——C编写MySQL程序二连接服务器
实现连接MySQL服务器、断开连接和退出。
代码如下:
#include <my_global.h>
#include <my_sys.h>
#include <mysql.h>
static char *opt_host_name = NULL; /* server host (default=localhost) */
static char *opt_user_name = NULL; /* username (default=login name) */
static char *opt_password = NULL; /* password (default=none) */
static unsigned int opt_port_num = 0; /* port number(use built-in value) */
static char *opt_socket_name = NULL; /* socket name (use built-in value) */
static char *opt_db_name = NULL; /* database name (default=none) */
static unsigned int opt_flags = 0; /* connection flags (none) */
static MYSQL *conn; /* pointer to connectionhandler */
int
main (int argc, char *argv[])
{
MY_INIT (argv[0]);
/* initializeclient library */
if(mysql_library_init (0, NULL, NULL))
{
fprintf(stderr, "mysql_library_init() failed\n");
exit (1);
}
/* initializeconnection handler */
conn =mysql_init (NULL);
if (conn ==NULL)
{
fprintf(stderr, "mysql_init() failed (probably out of memory)\n");
exit (1);
}
/* connect toserver */
if(mysql_real_connect (conn, opt_host_name, opt_user_name, opt_password,
opt_db_name, opt_port_num, opt_socket_name, opt_flags) == NULL)
{
fprintf(stderr, "mysql_real_connect() failed\n");
mysql_close(conn);
exit (1);
}
/* disconnectfrom server, terminate client library */
mysql_close(conn);
mysql_library_end ();
exit (0);
}
进行编译
# gcc `mysql_config --include``mysql_config --libs` connect1.c
代码说明
其中函数mysql_init函数获得一个连接处理器
函数mysql_real_connect函数,建立与服务器的连接,有很多参数:指向连接处理器的指针,服务器主机,使用MYSQL账户的用户名和密码,数据库名称指定的数据库将是链接建立之后的默认数据库,端口号,套接字文件名,标志值。
终止连接使用mysql_close函数。
MY_INIT()是一个初始化宏,把一个全局变量设置成程序名
Mysql_library_init会初始化客户端开发库,在调用其他mysql_xxx函数之前调用它。
Mysql_library_end会终止使用客户端开发库,并执行一些必要的清理工作。
注意
代码中包含硬编码值,会暴露密码。虽然编译成了二进制可执行文件,但是通过执行strings工具可以查看到密码。
测试
直接执行,如果数据库没开,则报错如下:
# ./a.out
mysql_real_connect() failed
如果没有任何输出,则表明连接成功。
- 69.笔记 MySQL学习——C编写MySQL程序二连接服务器
- 68.笔记 MySQL学习——C编写MySQL程序一准备
- 71.笔记 MySQL学习——C编写MySQL程序四处理SQL
- 72.笔记 MySQL学习——C编写MySQL程序五编码
- 73.笔记 MySQL学习——C编写MySQL程序六交互式语句执行
- 74.笔记 MySQL学习——C编写MySQL程序七支持SSL
- 75.笔记 MySQL学习——C编写MySQL程序八一次执行多条SQL
- 76.笔记 MySQL学习——C编写MySQL程序九预处理
- 70.笔记 MySQL学习——C编写MySQL程序三出错处理和命令选项处理
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- Servlet学习笔记(二)---连接Mysql
- 【教程】Mac使用xcode编写连接mysql的C程序
- VS2015编写C语言程序连接mysql并插入变量
- Mysql学习笔记:Mysql服务器体系结构(二)
- MySQL学习笔记—触发程序
- MySQL服务器学习笔记!(
- MySQL 学习笔记 二
- Mysql学习笔记二
- 数据结构实验之图论四:迷宫探索
- Spring Boot+thymeleaf 静态资源上下文的问题
- 68.笔记 MySQL学习——C编写MySQL程序一准备
- 页面的重绘与回流及优化
- Scikit-Learn 中文文档-安装|ApacheCN
- 69.笔记 MySQL学习——C编写MySQL程序二连接服务器
- 深度学习与硬件GPU,软件框架关系及相关概念解析
- leetcode 274|275. H-Index 1|2
- 70.笔记 MySQL学习——C编写MySQL程序三出错处理和命令选项处理
- 加强时间管理,充分利用资源
- 软工文档感受----甘特图
- 【Scikit-Learn 中文文档 】安装 scikit-learn | ApacheCN
- 71.笔记 MySQL学习——C编写MySQL程序四处理SQL
- python使用异常处理编写的小程序