2016-1-8 windows 7下安装mysql及其配置和运用
绪言
最近学习了一下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及其配置和运用的更多相关文章
- Windows系统下安装MySQL 8.0.11数据库
MySQL数据库是常用的数据库之一,而且该数据库开源免费,所以很多公司在使用.本文记录如何在Windows系统下安装MySQL数据库,本次安装的版本号为8.0.11,这个版本是当前的最新版本,据宣传, ...
- ubuntu下安装mysql和配置远程访问
ubuntu下安装mysql和配置远程访问 下载安装mysql sudo apt-get install mysql-client mysql-server 安装的时候会提示要设置root密码,如 ...
- CentOS双机中Docker下安装Mysql并配置互为主从模式
CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...
- windows系统下安装MySQL
可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...
- windows linux 下安装mysql 报1045 等错误
曾经在windows 下安装mysql 没怎么出现过问题.而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误.就个人经历来看这个问题就是 root用户pa ...
- windows 虚拟环境下 安装 mysql 引擎一系列错误处理
报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...
- CentOS7下安装MySQL并配置远程连接
一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...
- 本地Windows环境下安装MySql
Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包. Download Link: ...
- Windows 7下安装MySQL Server卡在Apply Security Settings的解决方案(转)
如果操作无效,请卸载MySQL Server后换一个位置安装 例如默认的是C:\Program Files\MySQL 安装时选Custom修改到D:\Program Files\MySQL试试 == ...
随机推荐
- python中判断字符串是否为中文
判断字符串是否在中文编码范围内 for c in s: if not ('\u4e00' <= c <= '\u9fa5'): return False ...
- x86保护模式-七中断和异常
x86保护模式-七中断和异常 386相比较之前的cpu 增强了中断处理能力 并且引入了 异常概念 一 80386的中断和异常 为了支持多任务和虚拟存储器等功能,386把外部中断称为中断 ...
- 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN
基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...
- 【Luogu】P3380树套树模板(线段树套Splay)
题目链接 幸甚至哉,歌以咏志. 拿下了曾经是那么遥不可及的线段树,学会了曾经高不可攀的平衡树,弄懂了装B的时候才挂在嘴边的树套树. 每道模板都是链上的一颗珠子.把它们挨个串起来,就成为我成长的历程. ...
- 12.jsp概述及指令
JSP全名是Java Server Page,它是建立在Servlet规范之上的动态网页开发技术.在JSP文件中,HTML代码与Java代码共同存在.Html代码用来实现网页中静态内容的显示,Java ...
- 洛谷P2522 - [HAOI2011]Problem b
Portal Description 进行\(T(T\leq10^5)\)次询问,每次给出\(x_1,x_2,y_1,y_2\)和\(d\)(均不超过\(10^5\)),求\(\sum_{i=x_1} ...
- 刷题总结——卡牌配对(bzoj4205网络流)
题目: Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值 ...
- 常州模拟赛d5t2 mogician
分析:一个暴力的思想是枚举g,然后枚举每个数ai,看能不能符合要求,这样复杂度是O(nA)的,直接T掉了.也没什么其他的办法了,在暴力的基础上优化一下,优化的关键是要如何快速统计出不满足要求的数的个数 ...
- 【2018.10.20】noip模拟赛Day3 飞行时间
今天模拟赛题目 纯考输入的傻逼题,用$scanf$用到思想僵化的我最终成功被$if$大法爆$0$了(这题只有一组$100$分数据). 输入后面那个$(+1/2)$很难$if$判断,所以我们要判两个字符 ...
- Spoj-TRNGL Make Triangle
Make Triangle Chayanika loves Mathematics. She is learning a new chapter geometry. While reading the ...