C++ 连接数据库MySQL (迷的操作..) (Codeblocks(32位) + MySQL(64位)

导语:

C++ 连接数据库MySQL.

我的本机环境是 MySQL(64位)  安装的 Codeblocks 是(32位的)  因为 不兼容的原因. 所以  一直出现各种错误.

经过各种尝试, 终于连接成功.

解决方案:  安装 MinGW64 位的编译器.   一般默认的 编译器是MinGW32 位的.

需要的前置环境:

如果你的Codeblocks 是 64 位的 , 那么应该不会又这个问题.

1.安装好codeblocks 和MySQL

2.离线下载MinGW64位: 传送们: 

操作步骤:

  1. : 设置MinGW 64 的环境变量:
  2. : 配置Codeblocks
  3. : 配置Codeblocks MySQL环境
  4. : 连接测试

设置MinGW 64 的环境变量:

解压到C盘根目录即可:

设置MinGW64的环境变量:

在Path中添加:  mingw64\bin\

然后Ok 保存,  

cmd 测试 环境变量添加是否成功:  gcc -v   如果 已经安装过 mingw32 的话, 需要在path中 去掉 mingw32的 目录. 两个应该是无法同时兼得.

配置Codeblocks

1: Setting -> debugger

2: 

3: Settings -> Compiler settings

配置Codeblocks MySQL环境

1:settings -> Compiler settings

2:settings -> Compiler settings

3:settings -> Compiler settings

4: 

当年创建完 project 后 (工程后 )  我的这里是 (LF)

将这三个文件 复制 (  在你的mysql\lib 下)

复制到这

还有这:

连接测试

#include <iostream>
#include <winSock2.h> //Socket
#include <mysql.h> // 连接数据库的头文件
#include <bits/stdc++.h>
#include <stdio.h>
#include <winsock2.h>
#include <winsock.h>

using namespace std;

MYSQL mysql,*sock;



const char *host = "localhost";//MYSQL服务器的主机名或IP,本机为localhost
const char *user = "root"; // mysql数据库登录的用户名  密码对应修改
const char *pwd = "root"; //mysql数据库登录的密码   密码对应修改
const char *db = "lf"; // 要连接的数据库名 我这里设置的是lf
const unsigned int port = 3306; // 数据库 一般默认端口为3306  不要修改
const char *unix_socket = NULL;
unsigned long client_flag = CLIENT_FOUND_ROWS; //MySQL运行ODBC数据库的标记


void Connect()
{

    if( ( mysql_real_connect(&mysql, host , user, pwd, db, port, unix_socket, client_flag ) ) == NULL)
    {
        cout<<"连接数据库失败! "<<endl;
        return ;
    }
    else
    {
        cout<<"连接数据库成功"<<endl;
    }
}
int main()
{

    mysql_init(&mysql);//初始化mysql连接
    MYSQL_RES *result;
    MYSQL_ROW row;

    Connect();

    return 0;
}

然后就可以做 相应的修改了.

发布了372 篇原创文章 · 获赞 89 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/sizaif/article/details/83142184