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文件;
c
#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;
}