C++ 连接数据库MySQL (迷的操作..) (Codeblocks(32位) + MySQL(64位)
导语:
C++ 连接数据库MySQL.
我的本机环境是 MySQL(64位) 安装的 Codeblocks 是(32位的) 因为 不兼容的原因. 所以 一直出现各种错误.
经过各种尝试, 终于连接成功.
解决方案: 安装 MinGW64 位的编译器. 一般默认的 编译器是MinGW32 位的.
需要的前置环境:
如果你的Codeblocks 是 64 位的 , 那么应该不会又这个问题.
1.安装好codeblocks 和MySQL
2.离线下载MinGW64位: 传送们:
操作步骤:
- : 设置MinGW 64 的环境变量:
- : 配置Codeblocks
- : 配置Codeblocks MySQL环境
- : 连接测试
设置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;
}
然后就可以做 相应的修改了.