MySql 8.0安装及VS2017连接

今天在电脑上安装了MySQL8.0并成功用vs2017连接,期间参考了不少教程,在此整理下参考的教程

一、windows10下MySQL8.0的安装

1、MySQL安装

首先登陆MySQL官网下载安装包https://dev.mysql.com/downloads/file/?id=480824

这里选择第二个安装包下载即可。 
下载完成之后就选择安装那个下载到的文件,基本上都是选择next、execute之类。 

这里要设置数据库的密码

 这个名称是数据库的名字。

最后安装完成。

2、环境变量配置

前面步骤完成后安装好MySQL,为MySQL配置环境变量。MySQL默认安装在C:\Program Files下。 

此电脑->右键->属性->高级系统设置->环境变量->path->编辑->新建->将C:\Program Files\MySQL\MySQL Server 8.0\bin添加进去

 3.测试是否安装成功

右击屏幕左下角开始菜单点击管理员权限运行命令提示符,用net start mysql80启动MySQL服务。用net stop mysql80关闭MySQL服务。其中mysql80为Windows下MySQL的服务名。

看到上图,说明安装已经完成。

4.MySQL_Workbench使用

首先打开MySQL_Workbench软件

 这里写图片描述

 点击图中的加号,得到下图,先输入数据库的账号密码,帐号默认为root,填好密码后 点击“OK”,连接就建立好了,建立完成后,会出现一个长方形的框框,双击它 

这里写图片描述  

弄完之后就会出现下面的界面,点击标红的圈  

 这里写图片描述

这里写图片描述 自己设置数据库的名字,保存。然后APPLY,Finish。 
这里写图片描述

 这里写图片描述

 然后在界面左边便出现了创建好的数据库。接下来创建表。点击上图紫色框左边的三角形箭头,打开下来框,右击Tables->Create Table…… 这里写图片描述

 在上一步后右边的界面就会出现这个。按照步骤来,先设置表名,再点击右边的双箭头打开扩展,扩展后便是下边的图。 
这里写图片描述

column name表示属性名称,datatype表示属性的类型,点击默认类型如int,varchar有下拉列表可选择。右边的pk表示primary key主键,nn表示not null非空,ai表示auto increment自增,一般来说只用这三个。其他的意思如下: 
UQ: unique (column is part of a unique key) 唯一 
BIN: binary 二进制(比text更大的二进制数据) 
UN: unsigned 整数 
ZF: zero fill 值中最有意义的字节总为0,并且不保存。 
在这个表中id被设置为主键。因此前面有个亮灯标记。 
在此之后点击APPLY。跟前面创建数据库一样。 
这里写图片描述

到此表也创建完成了,在新表中有两个属性。如下图。后面将对表中添加信息。这里写图片描述 

右击上表中的srt,srt->Select Rows-Limit1000;便出现了下图,在表中添加信息。再点击Apply,跟前面一样。 
自此,数据库的创建,表的创建,向表中插入数据都完成了 这里写图片描述 

打开cmd输入下面命令便可查看表中信息

这里写图片描述

这里写图片描述

这里写图片描述

二、vs2017连接MySQL

先新建一个c/c++项目

步骤1

右键单击项目名称,选择属性

QQ截图20180923193259.png

步骤2 

项目名->属性->c/c+±>常规->附加包含目录 添加路径:C:\\Program Files\\MySQL\\MySQL Server 8.0\\include
(这个是默认路径,选择自己安装的位置即可)

在这里插入图片描述

步骤3

链接器->常规->附加库目录 添加路径:C:\\Program Files\\MySQL\\MySQL Server 8.0\\lib
(这个是默认路径,选择自己安装的路径即可)

QQ截图20180923195159.png

步骤4:

链接器->输入->附加依赖项 添加:libmysql.lib

QQ截图20180923195222.png

 

** 完成后点击右下角的应用然后确定就OK了下面附上测试图**

 

如果运行软件提示找不到libmysql.dll请把这个文件从之前附加的目录里面复制到软件的debug目录!!!注意区分32位的目录和64位目录 

#include <stdio.h> 
#include <stdlib.h> 
#include<Windows.h>
#include<mysql.h>
#pragma comment(lib, "libmysql.lib")
int main(void)
{
	MYSQL mysql, *sock; //声明MySQL的句柄 
	const char * host = "127.0.0.1"; //因为是作为本机测试,所以填写的是本地IP 
	const char * user = "root"; //这里改为你的用户名,即连接MySQL的用户名 
	const char * passwd = "Z001221z"; //这里改为你的用户密码 
	const char * db = "student"; //这里改为你要连接的数据库的名字,一个数据可能有几张表
	unsigned int port = 3306; //这是MySQL的服务器的端口,如果你没有修改过的话就是3306。 
	const char * unix_socket = NULL; //unix_socket这是unix下的,我在Windows下,所以就把它设置为NULL 
	unsigned long client_flag = 0; //这个参数一般为0 

	const char * i_query = "select * from srt"; //查询语句,从那个表中查询,这里后面没有;

	MYSQL_RES * result; //保存结果集的
	MYSQL_ROW row; //代表的是结果集中的一行 
				   //my_ulonglong row;

	mysql_init(&mysql); //连接之前必须使用这个函数来初始化 
	if ((sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag)) == NULL) //连接MySQL 
	{
		printf("fail to connect mysql \n");
		fprintf(stderr, " %s\n", mysql_error(&mysql));
		exit(1);
	}
	else
	{
		fprintf(stderr, "connect ok!!\n");
	}

	if (mysql_query(&mysql, i_query) != 0) //如果连接成功,则开始查询 .成功返回0
	{
		fprintf(stderr, "fail to query!\n");
		exit(1);
	}
	else
	{
		if ((result = mysql_store_result(&mysql)) == NULL) //保存查询的结果 
		{
			fprintf(stderr, "fail to store result!\n");
			exit(1);
		}
		else
		{
			while ((row = mysql_fetch_row(result)) != NULL) //读取结果集中的数据,返回的是下一行。因为保存结果集时,当前的游标在第一行【之前】 
			{
				printf("id is %s\t", row[0]); //打印当前行的第一列的数据 
				printf("name is %s\t\n", row[1]); //打印当前行的第二列的数据
				printf("sex is %s\t\n", row[2]);
												 //row = mysql_num_row(result);
												 //printf("%lu\n", mysql_num_row(result));
			}
		}

	}
	mysql_free_result(result); //释放结果集 
	mysql_close(sock); //关闭连接 
	system("pause");
	exit(EXIT_SUCCESS);

}

参考:

https://blog.csdn.net/qq_36761831/article/details/80710349

https://blog.csdn.net/qq_21095573/article/details/82824693 

 

 

 

 

 

 

  • 15
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值