mysql数据库的搭建和操作
1: 去官网下载mysql的服务端: https://www.mysql.com/
 下载mysql服务器
 2: 安装好mysql服务,设置好初始化的根用户密码: 记住根用户的密码;
 3: windows 启动服务: mysql notifier或windows服务管理器启动;
 4: mysql客户端:
 Mac OS: Sequel Pro/命令行
 Windows: heidisql windows客户端/命令行;
 Linux: 命令行;
 5: heidisql: 安装:
 将heidisql可执行文件放到mysql server对应的目录下;
 7: heidisql连接数据库:
配置文件
Windows为my.ini,linux为my.cnf
 1: 通讯端口: port, 默认是3306;
 2: bind-address = 127.0.0.1
 如果不能远程登陆,记得检查下这个参数,是否打开;
 3: mysql数据库X小时无连接自动关闭, 默认8个小时;
 interactive_timeout=28800000
 wait_timeout=28800000
使用数据库
1: 数据库:
 创建CREATE DATABASE user_center
 使用一个数据库 USE user_center;
 1: 插入:
 insert into table_name (col1, col2,…) values(v1, v2…);
 2: 删除:
 delete from table_name where 条件
 3: 查找:
 select * from table_name where 条件;
 count(): 计算个数 ORDER BY 字段 / ORDER BY 字段 DESC
 4: 修改
 update table_name set col1 = value where 条件;
另外,项目中需要经常备份数据库.sql文件,可以在文件栏中选择导出对应的sql文件,并在导入时执行,数据就会回来
代码
1: mysql服务器提供了服务协议,客户端遵守它的协议给他发送数据;
 2: mysql有很多针对不同开发语言的 实现了和服务器通讯的客户端库;
 3: 开发人员使用这些遵守mysql协议的库与mysql进行数据通讯;
 4: 这里使用: mysql-connector-c
环境搭建:
 1: 创建项目;
 2:下载 mysql-connector-c 库与头文件;
 https://dev.mysql.com/downloads/connector/c/6.1.html
 3: 配置好mysql的开发环境:
 1>头文件搜索路径; 2>库文件搜索路径
 4: 配置好win socket环境WSAStartup/WSACleanup
 5: 运行时用的.dll文件;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 只要使用socket,最好在开始的时候
// 都加上初始化WSAStartup;
#include <winsock.h>
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libmysql.lib")
#include "mysql.h"
int main(int argc, char** argv) {
	WSADATA wsa;
	WSAStartup(MAKEWORD(2, 2), &wsa);
	// 创建一个mysql的连接;
	MYSQL* pConn = mysql_init(NULL);
	// 将这个连接,连接到对应的数据库,这样,我们的就和对应的数据库建立起了连接;
	mysql_real_connect(pConn, "127.0.0.1", "root", "123456", "class_sql", 3306, NULL, 0);
	// 数据库里面是utf8的编码,可是我们的VC里面不是得;
	// 客户端要设置一下客户端的编码格式是多少,这样服务器就会把数据当作哪种格式来使用;
	// mysql_query,执行命令的函数;
	mysql_query(pConn, "set names gbk"); // gbk字符编码;
	// 插入一条记录
#if 0
	int  ret = mysql_query(pConn, "insert into class_test (name, age, sex) values(4, 34, 1)");
	if (ret != 0) {
		printf("%s\n", mysql_error(pConn));
	}
#endif
	// end 
	// 修改一条记录
#if 0
	int ret = mysql_query(pConn, "update class_test set name = \"xiaomingm\" where id = 9");
	if (ret != 0) {
		printf("%s\n", mysql_error(pConn));
	}
	int lines = mysql_affected_rows(pConn); // 打印出来受影响的行数;
	printf("%d\n", lines);
#endif
	// 
	// 删除一条记录
#if 0
	int ret = mysql_query(pConn, "delete from class_test  where id = 9");
	if (ret != 0) {
		printf("%s\n", mysql_error(pConn));
	}
#endif
	// end
	// 查询一条记录,需要获取查询的结果;
	int ret = mysql_query(pConn, "select * from class_test");
	if (ret != 0) {
		printf("%s\n", mysql_error(pConn));
	}
	else { // 获得查询结果;
		MYSQL_RES *result = mysql_store_result(pConn);
		MYSQL_ROW row;
		while (row = mysql_fetch_row(result)) {
			printf("%s, %s, %s, %s\n", row[0], row[1], row[2], row[3]);
		}
	}
	// end
	mysql_close(pConn); // 关闭mysql连接;
	WSACleanup();
	system("pause");
	return 0;
}









