绪言

最近学习了一下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. CentOS6配置静态IP

    CentOS6配置静态IP 1. 编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=不需要改 TYPE=Et ...

  2. STM32F407 ADC 个人笔记

    1. ADC概述(STM32F4xx系列) 3 个 ADC 可分别独立使用 也可使用双重/三重模式(提高采样率) 2 个通道组 规则通道:相当于正常运行的程序 注入通道:相当于中断(可以打断规则通道的 ...

  3. x86保护模式 任务状态段和控制门

    x86保护模式    任务状态段和控制门 每个任务都有一个任务状态段TSS     用于保存任务的有关信息     在任务内权变和任务切换时  需要用到这些信息    任务内权变的转移和任务切换  一 ...

  4. Leetcode 322.零钱兑换

    零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: co ...

  5. MySQL 待解决死锁

    官方文档:https://dev.mysql.com/doc/refman/5.6/en/innodb-locks-set.html 线上出现一个死锁现象,信息显示的是两条对同一个表的不同记录的upd ...

  6. 【Luogu】P3116会议时间(拓扑排序,DP)

    题目链接 本题使用拓扑排序来规划DP顺序.设s[i][j]表示i步是否能走到j这个点,e[i][j]表示i步是否能走到j这个点——用第二条路径.因为要满足无后效性和正确性,只有第i个点已经全部更新完毕 ...

  7. 洛谷P3760 - [TJOI2017]异或和

    Portal Description 给出一个\(n(n\leq10^5)\)的序列\(\{a_n\}(\Sigma a_i\leq10^6)\),求该数列所有连续和的异或和. Solution 线段 ...

  8. 【2018.2.8-】网络流学习笔记(含ISAP!)

    网络流的基础内容就不详细发了,网上到处都是,可自学. 总版点这里 ps:以下有些链接是hihocoder的题目(题面有详细讲解),请确保先登录hihocoder,再点击进入相应题目网页. 最大流 基础 ...

  9. 转载:lua和c的交互

    extern "C" { #include "lua.h" #include "lualib.h" #include "lauxl ...

  10. bzoj 2017 [Usaco2009 Nov]硬币游戏 动态规划

    [Usaco2009 Nov]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 431  Solved: 240[Submit][Status] ...