绪言

最近学习了一下mysql的相关用法,以及vs2010结合mysql的使用。

遇到的问题:1、安装mysql 5.6 绿色免安装版本,出现mysql server not connect localhost 10061错误

2、安装mysql 5.7 ,command line出现闪退和mysql server not connect localhost 10061错误根本解决

3、vs2010配置mysql,无法连接mysql的错误

一、免安装版本启动mysql的方法

主要是配置文件配置错误:

1、进入mysql安装目录找到my-defaults.ini(安装或者免安装版的名称),将该名称修改为my.ini(注意.ini为该文件类型)

2、打开my.ini配置文件,修改port(mysql接入端口),basedir(mysql安装目录),datadirport(mysql数据库的数据的存放目录) 。

附上我的my.ini的配置文件内容:

3、启动mysql

第一步:打开cmd命令行,cd到安装根目录路(bin)下(例如:进入mysql安装的磁盘下,cd mysql\mysql 5.6\bin)

第二步:然后运行命令 mysql -uroot -p(或者mysql -u root -p),若出现下面错误

一般是mysql服务没有启动,解决方法:(查看mysql服务有没有启动,可以打开控制面板-管理-服务,找到mysql的运行方式改改为自启动)

这里我采用一种更笨的方法,无论是否启动,我们先执行下一条命令:

mysqld -nt -remove(卸载mysql服务)

再执行mysqld -nt -install

再输入 mysql -uroot -p

得到如下图:

则说明顺利进入了mysql命令行中。

二、解决command line 闪退现象和mysql server not connect localhost 10061错误根本解决

1、进入mysql安装目录找到my-defaults.ini(安装或者免安装版的名称),将该名称修改为my.ini(注意.ini为该文件类型),打开my.ini配置文件,修改port(mysql接入端口),basedir(mysql安装目录),datadirport(mysql数据库的数据的存放目录) 。

2、(根本解决启动mysql失败方法),附件-运行,输入regedit

3、在如图的目录树中找到mysql项,双击进入找到ImagePath这一项,

4、修改ImagePath中的路径(启动mysqld的路径),mysqld.exe在安装根目录下,只需要把该路径添加进去。(注意后面如有--defaults-files=d:Mysql,则将该句删掉,仅保留你的mysqld路径即可)

5、重新启动计算机,cmd中运行命令mysql -uroot -p或者mysql command line 即可运行mysql数据库。

总结:这种方法从根本上解决了启动mysql服务问题,不用每次开机繁琐的去执行mysqld -nt -remove ,mysqld -nt -install等命令。

三、Vs2010配置mysql

1、将mysql安装目录中include的路径写入vs2010项目属性配置的包含目录

将mysql安装目录中lib的路径写入vs2010项目属性配置的库目录

将libmysql.lib写入连接器-输入-附加依赖项

系统环境变量的配置;

打开系统环境变量,找到path,在path里添加mysql安装目录中lib文件的路径

vs2010配置mysql的完成。

四、一个可以运行的结合mysql的c++文件

#ifndef _VSPD_H

#define _VSPD_H

#include <Windows.h>

#include <string>

#include <mysql.h>

#include <iostream>

using namespace std;

class VspdCToMySQL

{

public:

//变量

MYSQL mysql;

/*

1、构造函数和稀构函数

*/

VspdCToMySQL();

~VspdCToMySQL();

/*

ConnMySQL();

主要的功能:

初始化数据库

连接数据库

设置字符集

入口参数:

host :MYSQL服务器IP

port:数据库端口

Db:数据库名称

user:数据库用户

passwd:数据库用户的密码

charset:希望使用的字符集

Msg:返回的消息,包括错误消息

出口参数:

int :0表示成功;1表示失败

*/

int ConnMySQL(char *host,char * port,char * Db,char * user,char* passwd,char * charset,char * Msg);

/*

主要的功能:

查询数据

入口参数:

SQL:查询的SQL语句

Cnum:查询的列数

Msg:返回的消息,包括错误消息

出口参数:

string 准备放置返回的数据,多条记录则用0x06隔开,多个栏位用0x05隔开

如果 返回的长度= 0,责表示舞结果

*/

string SelectData(char * SQL,int Cnum ,char * Msg);

/*

主要功能:

插入数据

入口参数

SQL:查询的SQL语句

Msg:返回的消息,包括错误消息

出口参数:

int :0表示成功;1表示失败

*/

int InsertData(char * SQL,char * Msg);

/*

主要功能:

修改数据

入口参数

SQL:查询的SQL语句

Msg:返回的消息,包括错误消息

出口参数:

int :0表示成功;1表示失败

*/

int UpdateData(char * SQL,char * Msg);

/*

主要功能:

删除数据

入口参数

SQL:查询的SQL语句

Msg:返回的消息,包括错误消息

出口参数:

int :0表示成功;1表示失败

*/

int DeleteData(char * SQL,char * Msg);

/*

主要功能:

关闭数据库连接

*/

void CloseMySQLConn();

};

#endif

#include "VspdCTOMySQL.h"

VspdCToMySQL::VspdCToMySQL()

{

}

VspdCToMySQL::~VspdCToMySQL()

{

}

//初始化数据

int VspdCToMySQL::ConnMySQL(char *host,char * port ,char * Db,char * user,char* passwd,char * charset,char * Msg)

{

if( mysql_init(&mysql) == NULL )

{

Msg = "inital mysql handle error";

return 1;

}

if (mysql_real_connect(&mysql,host,user,passwd,Db,0,NULL,0) == NULL)

{

Msg = "Failed to connect to database: Error";

return 1;

}

if(mysql_set_character_set(&mysql,charset) != 0)

{

Msg = "mysql_set_character_set Error";

return 1;

}

return 0;

}

//查询数据

string VspdCToMySQL::SelectData(char * SQL,int Cnum,char * Msg)

{

MYSQL_ROW m_row;

MYSQL_RES *m_res;

char sql[2048];

sprintf(sql,SQL);

int rnum = 0;

int cnum = 0;

char rg = 0x06;//行隔开

char cg = {0x05};//字段隔开

if(mysql_query(&mysql,sql) != 0)

{

Msg = "select ps_info Error";

return "";

}

m_res = mysql_store_result(&mysql);

if(m_res==NULL)

{

Msg = "select username Error";

return "";

}

cnum=mysql_num_fields(m_res); //获取数据库的列数

cnum=cnum>Cnum?Cnum:cnum;

cout<<"cnum:"<<cnum<<endl;

string str("");

while(m_row = mysql_fetch_row(m_res))

{

for(int i = 0;i < cnum;i++)

{

if(m_row!=NULL)

{

str += m_row[i];

str+=0x09;

}

else

{

str+="NULL";

}

}

str +="\n";

rnum++;

}

cout<<"rnum:"<<rnum<<endl;

mysql_free_result(m_res);

return str;

}

//插入数据

int VspdCToMySQL::InsertData(char * SQL,char * Msg)

{

char sql[2048];

sprintf(sql,SQL);

if(mysql_query(&mysql,sql) != 0)

{

Msg = "Insert Data Error";

return 1;

}

return 0;

}

//更新数据

int VspdCToMySQL::UpdateData(char * SQL,char * Msg)

{

char sql[2048];

sprintf(sql,SQL);

if(mysql_query(&mysql,sql) != 0)

{

Msg = "Update Data Error";

return 1;

}

return 0;

}

//删除数据

int VspdCToMySQL::DeleteData(char * SQL,char * Msg)

{

char sql[2048];

sprintf(sql,SQL);

if(mysql_query(&mysql,sql) != 0)

{

Msg = "Delete Data error";

return 1;

}

return 0;

}

//关闭数据库连接

void VspdCToMySQL::CloseMySQLConn()

{

mysql_close(&mysql);

}

#include "VspdCTOMySQL.h"

int main(int argc, char* argv[])

{

char* host="localhost";

char* user="root";

char* port ="3306";

char* passwd="";

char* dbname="image";

char* charset = "GBK";//支持中文

char* Msg = "";//消息变量

//初始化

VspdCToMySQL * vspdctomysql = new VspdCToMySQL;

if(vspdctomysql->ConnMySQL(host,port,dbname,user,passwd,charset,Msg) == 0)

printf("连接成功\n");

else

printf(Msg);

//查询

char * SQL = "SELECT id,number FROM abc";//从数据库image表abc查询id,name项的值

string str = vspdctomysql->SelectData(SQL,3,Msg);

if( str.length() > 0 )

{

printf("查询成功\n");

printf(str.data());

printf("\r\n");

}

else

{

printf(Msg);

}

//插入

SQL = "insert into abc values('fh','10')";

if(vspdctomysql->InsertData(SQL,Msg) == 0)

printf("插入成功\n");

//更新

//SQL = "update vcaccesstest set username = '修改了',passwd='2345' where ids = 3 ";

//if(vspdctomysql->UpdateData(SQL,Msg) == 0)

// printf("更新成功/r/n");

//删除

//SQL = "delete from vcaccesstest where ids = 3 ";

//if(vspdctomysql->DeleteData(SQL,Msg) == 0)

// printf("删除成功/r/n");

// vspdctomysql->CloseMySQLConn();

return 0;

}

2016-1-8 windows 7下安装mysql及其配置和运用的更多相关文章

  1. Windows系统下安装MySQL 8.0.11数据库

    MySQL数据库是常用的数据库之一,而且该数据库开源免费,所以很多公司在使用.本文记录如何在Windows系统下安装MySQL数据库,本次安装的版本号为8.0.11,这个版本是当前的最新版本,据宣传, ...

  2. ubuntu下安装mysql和配置远程访问

    ubuntu下安装mysql和配置远程访问   下载安装mysql sudo apt-get install mysql-client mysql-server 安装的时候会提示要设置root密码,如 ...

  3. CentOS双机中Docker下安装Mysql并配置互为主从模式

    CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...

  4. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  5. windows linux 下安装mysql 报1045 等错误

    曾经在windows 下安装mysql 没怎么出现过问题.而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误.就个人经历来看这个问题就是 root用户pa ...

  6. windows 虚拟环境下 安装 mysql 引擎一系列错误处理

    报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...

  7. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

  8. 本地Windows环境下安装MySql

    Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包. Download Link: ...

  9. Windows 7下安装MySQL Server卡在Apply Security Settings的解决方案(转)

    如果操作无效,请卸载MySQL Server后换一个位置安装 例如默认的是C:\Program Files\MySQL 安装时选Custom修改到D:\Program Files\MySQL试试 == ...

随机推荐

  1. Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull. Follow up: Can

    Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull. Follo ...

  2. BNU OJ 1027 金币系统

    金币系统 Time Limit: 1000ms Memory Limit: 65535KB   64-bit integer IO format: %lld      Java class name: ...

  3. IIS中如何应用程序启用https协议

    首先已经安装完了SSL证书 1.找到需要添加的站点,右击 ---> 编辑绑定-->添加--->选择  ""https"-->选择"SSL ...

  4. zoj2112 主席树动态第k大 (主席树&&树状数组)

    Dynamic Rankings Time Limit: 10 Seconds      Memory Limit: 32768 KB The Company Dynamic Rankings has ...

  5. JAVA如何解压缩ZIP文档

    代码片段: package org.yu.units; import java.io.Closeable; import java.io.File; import java.io.FileInputS ...

  6. POJ 1330:Nearest Common Ancestors【lca】

    题目大意:唔 就是给你一棵树 和两个点,问你这两个点的LCA是什么 思路:LCA的模板题,要注意的是在并查集合并的时候并不是随意的,而是把叶子节点合到父节点上 #include<cstdio&g ...

  7. 算法复习——带修改莫队(bzoj2453)

    题目: Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A ...

  8. 【树状数组区间修改单点查询】HDU 4031 Attack

    http://acm.hdu.edu.cn/showproblem.php?pid=4031 [题意] 有一个长为n的长城,进行q次操作,d为防护罩的冷却时间,Attack表示区间a-b的墙将在1秒后 ...

  9. 【kmp或扩展kmp】HDU 6153 A Secret

    acm.hdu.edu.cn/showproblem.php?pid=6153 [题意] 给定字符串A和B,求B的所有后缀在A中出现次数与其长度的乘积之和 A和B的长度最大为1e6 方法一:扩展kmp ...

  10. 使用nginx时,让web取得原始请求地址

    问题描述 当使用nginx配置proxy_pass参数以后,后端web取得的Request.Uri是proxy_pass中配置的地址,而不是client访问的原始地址 举例说明: 假设nginx配置文 ...