zoukankan      html  css  js  c++  java
  • 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为该文件类型)

    9db21d3b-f710-49c5-9312-7a3296816936[6]

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

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

    e46d2cef-f7f3-44db-b584-2fc851827c83[6]

    3、启动mysql

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

    afaa4019-7ad3-4b32-a1af-bde70aac2f35[6]

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

    967df3d3-df74-4c0e-ac48-d66acfd1c0a8[6]

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

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

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

    再执行mysqld -nt -install

    再输入 mysql -uroot -p

    得到如下图:

    0e7aab0f-53d5-4f78-8723-11989983d3d7[6]

    则说明顺利进入了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

    ec04919d-e33d-46f1-831f-a9852dac88c9[6]

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

    49f2fbd0-79f2-48a3-83cc-38b18e4f7bde[6]

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

    fe3eb682-e2d7-4f3b-ab6a-4d66688da360[6]

    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项目属性配置的库目录

    9686507[6]

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

    d67d364e-a925-4181-99b4-88ff107be635[6]

    系统环境变量的配置;
    打开系统环境变量,找到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 +=" ";

    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("连接成功 ");

    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("查询成功 ");

    printf(str.data());

    printf(" ");

    }

    else

    {

    printf(Msg);

    }

    //插入

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

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

    printf("插入成功 ");

    //更新

    //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;

    }

  • 相关阅读:
    Spring Boot SOAP系列之WSDL是什么“Lese”
    MyBatis源码分析和纯手写MyBatis框架集合
    哪吒:我命由我不由天
    手写MyBatis,纯手工打造开源框架(第四篇:决胜千里)- 第272篇
    Linux Submitting Patch
    Setting Up MySQL Debugging Environment
    How to mannuly configure vmtools in VM-Ware?
    How to mannuly configure vmtools in VM-Ware?
    Install 32bit libraries in 64 bit ubuntu(14.10)
    The easiest way to extract/uncompress files
  • 原文地址:https://www.cnblogs.com/xsfmg/p/5113682.html
Copyright © 2011-2022 走看看