绪言

最近学习了一下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. 深入java集合系列

    http://www.cnblogs.com/ITtangtang/p/3948765.html 写的很赞 需要时常复习.

  2. Codeforces Round #416 (Div. 2) 本来以为这个时间是晚上的,下午就没做

    A. Vladik and Courtesy time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  3. AFNetWorking出现code=-1016错误解决办法

    报错类似: 2015-12-09 15:58:03.062 Carloans[14328:2300485] Error Domain=com.alamofire.error.serialization ...

  4. NOI2015 荷马史诗 【k-哈夫曼树】

    题目 追逐影子的人,自己就是影子 --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛> ...

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

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

  6. Nk 1214 Relatives(欧拉函数)

    Time Limit: 1500 ms    Memory Limit: 10000 kB   Total Submit : 234 (77 users)   Accepted Submit : 10 ...

  7. ZOJ 3306 状压dp

    转自:http://blog.csdn.net/a497406594/article/details/38442893 Kill the Monsters Time Limit: 7 Seconds ...

  8. R语言入门视频笔记--6--R函数之cat、format、switch函数

    一.cat 猫  怎么就变成一个输出函数了呢? cat  一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...

  9. iOS7 毛玻璃效果

    转自:http://prolove10.blog.163.com/blog/static/138411843201391401054305/ 原图:  效果图:  实现:首先需要导入Accelerat ...

  10. Yii 之Session使用

    public function actionIndex(){ $session = \YII::$app->session; //判断session是否开启 if(!$session->i ...