Linux C MySQL数据库函数
1. 初始化一个连接句柄
MYSQL *mysql_init(MYSQL *);
正确:返回一个指向新分配的链接句柄结构的指针
错误:NULL
注:该函数的传入参数通常为NULL即可。
2. 建立物理连接
MYSQL *mysql_real_connect(MYSQL *connection,
const char *server_host,
const char *sql_user_name,
const char *sql_password,
const char *db_name,
unsigned int port_number,
const char *unix_socket_name,
unsigned int flags);
其中connection参数为通过mysql_init函数创建的句柄,server_host参数可为主机名或IP值,如果连到本机,我们仅仅只需指定“localhost”即可。sql_user_name和sql_password即为访问数据库的用户名和密码,如果sql_user_name为空,那么默认为当前Linux user的用户名,如果sql_password为空,那么只能访问不需要密码的数据。密码在经网络传输之前都经过加密处理。通常情况下,如果你没有改变MySQL的默认安装,port_number和*unix_socket_name的值分别为0和NULL即可,他们默认为当前相应值。flags参数允许我们改变当前使用协议的特性,默认情况下,置0即可。
如果连接不成功,该函数返回NULL
3. 断开连接
void mysql_close(MYSQL *connection);
使用该函数可以断开指定的链接。不让不需要的连接断开会浪费资源,但重新建立连接需要额外开销,在实际工作中我们可根据需要权衡。
4. 选项设置
int mysql_options(MYSQL *connection, enum option_to_set,
const char *argument);
该函数可用在mysql_init和mysql_real_connect之间来设置一些连接选项,option_to_set参数如MYSQL_OPT_CONNECT_TIMEOUT用来设置连接超时的时间(秒),MYSQL_OPT_COMPRESS表示在网络传输中对数据进行压缩,而MYSQL_INIT_COMMAND指定每当连接建立时用来发送的命令。
函数成功时返回0,因为该函数仅仅用来设置选项,所以失败意味着使用了无效的选项。此外,该函数每次只能设置一种选项,所以每设置一个选项就必须调用该函数一次。
举例:
unsigned int timeout = 7;
connection = mysql_init(NULL);
相关文档:
mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部 ......
注: 从MySQL从服务器的版本不能小于主服务器的版本 实验环境 Master Mysql服务器版本5.1.36,IP:192.168.128.130 Slave Mysql服务器版本5.1.36,IP:192.168.128.132 一. MySQL主服务器配置 1.建立授权用户 用法:grant replication slave on *.* to ‘用户名’@'主机’ identified by ‘密码’; mysql>grant replicatio ......
<%@ page contentType="text/html;charset=GBK" language="java" import="java.sql.*,java.util.*"%>
<html>
<head>
<title>连接mysql的javabean实例+简单分页</title>
<link href="../CSS.css" rel="stylesheet" type="text/css">
</head>
<body>
<jsp:useBean ......
今天有朋友问起此类语句的优化,我大致给他介绍了下从SQL角度做简单的优化,至于应用程序方面的考虑咱暂时不考虑。
下面我来举一个
简单的例子。
考虑如下
表结构:
/*DDL Information
For - t_girl.t_page_sample*/
----------------------------------------------
Table ......
setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个function,以下程序demo如何使用setitimer()。
/*
......