用Dev-Cpp搭建MySQL++编程环境

本文介绍如何快速上手轻量级数据库MySQL,包括下载、安装、配置和基本开发实操,通过代码示例展示了如何利用MySQL++进行数据库操作,以及如何在Dev-C++环境下编译和测试MySQL++源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小弟这两天要写个小程序,涉及到数据储存处理比较多,想安装个数据库。以前用过一段时间MS SQL Server 2000,整整一张安装盘,安装配置一下就得大半天。对付芝麻大的小程序,真是杀鸡用牛刀。要找一个轻量级的数据库,首先想到的就是MySQL,久闻大名,但从未谋面,今天想见识见识它的真功夫 :-)

到MySQL官方网站看了一下,不得了,这家伙身材虽不大,才十几兆,功能已经向企业级看齐了,完全不像是几年前听说的那个小玩意。再看看我关心的编程接口,不错不错,还有个叫MySQL++的C++ wrapper,而且是STL风格的接口,呵呵,这样一套完美的封装使数据库编程完全成为了一种享受, 来一段看看:

代码:
       
vector<mystruct> v; Query q = connection.query(); q << "SELECT * FROM mytable"; q.storein(v); for (vector<mystruct>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->price << endl;

小弟使用数据库机会不多,知之甚少,如有错误请指正。


一、下载
1、MySQL5.0安装程序(精简版)
http://dev.mysql.com/get/Downloads/M...rix.net/mysql/

2、MySQL++源程序
http://tangentsoft.net/mysql++/relea...+-2.1.1.tar.gz

3、Dev-Cpp 4.9.9.2
http://www.yaguo.com/web/softroom/dl.asp?addid=5066

二、安装
1、安装Dev-Cpp
Dev-Cpp是windows平台下的一套开发C++程序的GUI,集成了mingw编译工具。安装这个太简单乐,不多说,GUI的安装方式,一直点OK就行啦 :-)
安装完成后,要记得把mingw编译器的路径C:\Dev-Cpp\bin添加行系统PATH环境里。点开“我的电脑->属性->高级->环境变量->PATH”,在文本框最后加上“;C:\Dev-Cpp\bin”。

2、安装MySQL5.0
也是GUI的安装方式,一定要装安装路径设置为“C:\MySQL”,否则编译MySQL++源代码会有问题。其它默认就OK可以乐。安装完成了,别忘了配置一下Server Instance。

3、编译MySQL++源代码
解压 mysql++-2.1.1.tar.gz 到 D:\CPP_LIB\mysql++ (这是我的安装路径,自已可以随意调整啦)

在目录C:\MySQL\lib\opt下打开命令行,执行下列命令行,生成mingw编译器能认识的动态链接库:
代码:
       
C:\MySQL\lib\opt>dlltool -k -d D:\CPP_LIB\mysql++\libmysqlclient.def -l libmysqlclient.a
修改make文件,打开D:\CPP_LIB\mysql++\Makefile.mingw,在文件开头处加上连接选项。(用默认选项可能会编译不过哦 :P )
代码:
       
# linker flags LDFLAGS = -enable-runtime-pseudo-reloc
在目录D:\CPP_LIB\mysql++下打开命令行,执行make命令,就一切搞掂啦 
代码:
       
D:\CPP_LIB\mysql++>make -f Makefile.mingw all
检查一下,你的D:\CPP_LIB\mysql++\lib目录下是否生成了两个文件:libmysqlpp.a,mysqlpp.dll。
D:\CPP_LIB\mysql++\examples目录下是否生成了一堆exe文件:
代码:
       
D:\CPP_LIB\mysql++\examples>dir *.exe 2006-04-21 23:08 1,796,419 resetdb.exe 2006-04-21 22:08 1,812,535 simple1.exe 2006-04-21 22:08 1,814,477 simple2.exe 2006-04-21 22:09 1,810,725 simple3.exe 2006-04-21 22:09 1,808,913 usequery.exe 2006-04-21 22:09 1,838,997 multiquery.exe 2006-04-21 22:10 1,830,994 custom1.exe 2006-04-21 22:10 1,800,529 custom2.exe 2006-04-21 22:11 1,814,019 custom3.exe 2006-04-21 22:11 1,850,548 custom4.exe 2006-04-21 22:12 1,846,565 custom5.exe 2006-04-21 22:12 1,834,823 custom6.exe 2006-04-21 22:13 1,876,140 dbinfo.exe 2006-04-21 22:13 1,805,388 fieldinf1.exe 2006-04-21 22:14 1,784,760 xaction.exe 2006-04-21 22:14 1,634,397 cgi_image.exe 2006-04-21 22:14 1,615,386 load_file.exe 2006-04-21 22:15 1,669,868 updel.exe
三、测试
在D:\CPP_LIB\mysql++\examples目录下打开命令行,执行刚刚编译出的resetdb,初始化数据库配置:
代码:
       
D:\CPP_LIB\mysql++\examples>resetdb Connecting to database server... Dropping existing stock table... Creating new stock table... Populating stock table... Reinitialized sample database successfully.
然后一个个地试试该目录下那些exe文件,看看效果 :-) 这里举两个例子:
代码:
       
D:\CPP_LIB\mysql++\examples>simple1 We have: Nurnberger Brats Pickle Relish Hot Mustard Hotdog Buns D:\CPP_LIB\mysql++\examples>usequery Nurnberger Brats 92 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 75 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23

呵呵,现在可以写自已的代码了。有机会小弟贴一些出来请大家指正 ;-)







__________________
I believe I can fly.

此帖于 06-04-22 12:18 被 sweord 编辑.
  sweord 当前离线   回复时引用此帖
旧 06-04-23, 00:56 第 2 帖
 
sweord 的头像
 
 
注册会员 
  注册日期: Mar 2004
  帖子: 48
  精华: 0
 

MySQL++示例工程

一、配置Dev-C++编译选项
1、配置连接选项
点开菜单"工具->编译器选项", 选中"编译器->在连接器命令行加入以入命令"。在该选项下面的文本框内填写:
代码:
               
-enable-runtime-pseudo-reloc
2、添加MySQL和MySQL++开发包的头文件到查找目录
点开菜单"工具->编译器选项->目录->C++包含文件”,在下面的列表中加上两行:
代码:
               
C:\MySQL\include D:\CPP_LIB\mysql++\include

二、新建工程
启动Dev-C++,新建一个工程。选择工程类型为console application,语言为C++,工程名为MySQLpp。将工程保存到D:\Test\DevCpp\MySQLpp目录下,删除工程默认创建的main.cpp文件。
从目录D:\CPP_LIB\mysql++\examples下复制stock.h, util.h, util.cpp, usequery.cpp四个文件到工程目录D:\Test\DevCpp\MySQLpp中。在Dev-C++的工程管理窗口中添加这四个文件。


三、设置工程属性
点开菜单“工程->工程属性->参数”,在“连接器”对应的文件框中添加两个库文件:
代码:
               
C:/MySQL/lib/opt/libmysqlclient.a D:/CPP_LIB/mysql++/lib/libmysqlpp.a
四、运行
点击编译运行按钮就可以啦! 不过窗口一闪而过,什么也没有看到 :-( 修改一下文件usequery.cpp中这一段代码:
代码:
               
catch (const mysqlpp::EndOfResults&) { // Last query result received. Exit normally. return 0; }
修改成:
代码:
               
catch (const mysqlpp::EndOfResults&) { // Last query result received. Exit normally. system("PAUSE"); return 0; }
这样就OK了,可以看到数据库的查询结果 :-)
### 配置 VSCode 连接 MySQL 的开发环境 #### 1. 安装 MySQL 数据库 在 Ubuntu 上安装 MySQL 可以按照以下命令完成: ```bash sudo apt update sudo apt install mysql-server ``` 为了确保 MySQL 正常运行,启动服务并设置开机自启: ```bash sudo systemctl start mysql.service sudo systemctl enable mysql.service ``` 如果遇到没有初始密码或者无法登录的问题,可以通过重置 root 密码来解决。进入安全模式修改密码: ```bash sudo mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; exit; ``` 上述操作解决了无初始密码以及登录失败的情况[^1]。 #### 2. 安装必要的依赖项 为了让 C++ 或其他编程语言能够访问 MySQL 数据库,需要先安装 `libmysqlclient-dev` 库文件: ```bash sudo apt-get install libmysqlclient-dev ``` 此步骤会提供头文件 `<mysql.h>` 和链接器所需的动态库文件。 #### 3. 在远程环境中配置 SQLite(可选) 如果是通过 VSCode 的远程调试功能连接到 Ubuntu 主机,则还需要确认目标主机已安装 SQLite 工具链以便支持某些扩展的功能需求: ```bash sudo apt install sqlite3 ``` 这一步并非强制性要求,但如果涉及 SQL 查询测试工具可能会用得上[^2]。 #### 4. 创建新的数据库用户并授权 有时默认的 root 用户可能因为权限限制而无法正常工作,建议新建一个专门用于应用程序交互的新用户,并赋予适当的操作权限: ```sql CREATE USER 'app_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%'; FLUSH PRIVILEGES; ``` 这样做的好处是可以减少因 root 权限过高带来的安全隐患,同时也便于排查具体用户的连接问题[^4]。 #### 5. 配置 VSCode 插件 打开 Visual Studio Code 并依次安装如下插件: - **C/C++** - **CMake** - **CMake Tools** 这些插件有助于构建基于 C++ 的项目框架并与本地编译器集成良好。 接着,在 `.vscode/settings.json` 文件中定义好路径参数,例如指定 g++ 编译选项加入 `-lmysqlclient` 参数以链接 MySQL 动态库: ```json { "C_Cpp.default.includePath": [ "/usr/include/mysql" ], "C_Cpp.default.defines": [], "C_Cpp.default.intelliSenseMode": "gcc-x64", "C_Cpp.default.compilerPath": "/usr/bin/g++" } ``` 对于实际编写程序时调用 MySQL API 的例子代码如下所示: ```cpp #include <iostream> #include <mysql.h> int main() { MYSQL* conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "app_user", "password", NULL, 0, NULL, 0)) { std::cerr << "Error connecting to database: " << mysql_error(conn) << std::endl; return EXIT_FAILURE; } std::cout << "Connected successfully!" << std::endl; mysql_close(conn); return EXIT_SUCCESS; } ``` 最后记得调整 Makefile 中的内容使其能正确找到静态/共享对象文件位置: ```makefile g++ -o test_mysql $(CPPFLAGS) -I/usr/include/mysql -L/usr/lib/x86_64-linux-gnu -lmysqlclient test.cpp ``` --- ### 总结 以上流程涵盖了从基础环境搭建至高级应用层面的一系列指导说明,帮助开发者顺利完成 Ubuntu 环境下针对 MySQL 的全面部署与对接任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值