- 浏览: 35925 次
- 性别:
- 来自: 青岛
文章分类
最新评论
Linux下C++连接操作MySQL数据库环境搭建
日期 版本 作者 修改内容 备注
2017年4月8日 V1.0 刘胜军 文件初建 无
一、引言
1.1 编写目的
Linux下C++连接操作MySQL数据库环境搭建
1.2 术语
gcc/gcc-c++:
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages (libstdc++,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom.
boost/boost-devel:
Boost provides free peer-reviewed portable C++ source libraries.
mysql-connector-c++:
All distributions of Connector/C++ contain a README file, which contains platform-specific notes. At the end of the README file contained in the binary distribution you will find the settings used to build the binaries. If you experience build-related issues on a platform, it may help to check the settings used on the platform to build the binary.
1.3 准备工作
一台安装有CentOS 7.X OS的机器,可连接互联网,或备有离线安装包。
1.4 注意事项
使用yum源安装时,需正确配置yum源。
二、依赖环境搭建
2.1 安装gcc-c++
方法一:使用yum源
[root@user ~]# yum install -y gcc-c++
方法二:使用本地rpm
rpm -ivh libgcc-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh glibc-common-2.17-157.el7_3.1.x86_64.rpm --force --nodeps rpm -ivh glibc-2.17-157.el7_3.1.x86_64.rpm --force --nodeps rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm --force --nodeps rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm --force --nodeps rpm -ivh libstdc++-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh libstdc++-devel-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh cpp-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh libgomp-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh kernel-headers-3.10.0-514.10.2.el7.x86_64.rpm --force --nodeps rpm -ivh glibc-headers-2.17-157.el7_3.1.x86_64.rpm --force --nodeps rpm -ivh glibc-devel-2.17-157.el7_3.1.x86_64.rpm --force --nodeps rpm -ivh gcc-4.8.5-11.el7.x86_64.rpm --force --nodeps rpm -ivh gcc-c++-4.8.5-11.el7.x86_64.rpm --force --nodeps
2.2 安装boost-devel
方法一:使用yum源
[root@user ~]# yum install -y boost-devel
方法二:使用本地rpm
rpm -ivh boost-system-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-chrono-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-filesystem-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-thread-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh libicu-50.1.2-15.el7.x86_64.rpm --force --nodeps rpm -ivh boost-regex-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-date-time-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-wave-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-graph-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-locale-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-timer-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-random-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-program-options-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-context-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-atomic-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-python-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-iostreams-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-serialization-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-math-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-test-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-signals-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-1.53.0-26.el7.x86_64.rpm --force --nodeps rpm -ivh boost-devel-1.53.0-26.el7.x86_64.rpm --force --nodeps
2.3 安装mysql-connector-c++
下载地址:
https://dev.mysql.com/downloads/connector/cpp/
Connector/C++ 1.1.8
Looking for previous GA versions?
Select Operating System:
Linux - Generic
Select OS Version:
Linux - Generic (glibc 2.5) (x86, 64-bit)
安装:
rpm -ivh mysql-connector-c++-1.1.8-linux-glibc2.5-x86-64bit.rpm
三、测试
3.1 编写测试文件
[root@user ~]# cat Test.cpp #include <iostream> #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> using namespace std; int main() { try { std::cout << "入口开始" << std::endl; sql::mysql::MySQL_Driver *driver; sql::Connection *con; sql::Statement *stmt; driver = sql::mysql::get_mysql_driver_instance(); std::cout << "连接数据库" << std::endl; con = driver->connect("tcp://127.0.0.1:3306", "test", "test"); stmt = con->createStatement(); stmt->execute("USE test"); //选择使用的数据库 std::cout << "获取查询结果" << std::endl; sql::ResultSet* result = stmt->executeQuery("select now() as time"); std::cout << "输出查询结果" << std::endl; if (result) { while (result->next()) { cout << result->getString(1) << std::endl; } } } catch (sql::SQLException &e) { return -1; } }
3.2 编译测试文件
[root@user ~]# g++ -o test Test.cpp
3.3 测试
[root@user ~]# ./test 入口开始 连接数据库 获取查询结果 输出查询结果 2017-04-08 12:38:20
四、问题解析
4.1 问题一:undefined reference to `sql::mysql::get_driver_instance()'
[root@user ~]# g++ -o test Test.cpp /tmp/cc2gvcAt.o: In function `sql::mysql::get_mysql_driver_instance()': Test.cpp:(.text+0x5): undefined reference to `sql::mysql::get_driver_instance()' collect2: error: ld returned 1 exit status
解决方法:
[root@user ~]# g++ -o test Test.cpp -lmysqlcppconn [root@user ~]# ./test 入口开始 连接数据库 获取查询结果 输出查询结果 2017-04-08 12:45:14 [root@user ~]#
发表评论
-
touch 命令详解
2017-03-06 22:47 767Linux -- touch 创建及修改文件时间 T ... -
mv 命令详解
2017-03-06 21:11 551Linux -- mv 移动文件 MV(1) ... -
cp 命令详解
2017-03-05 23:26 1254Linux -- cp 复制文件 CP(1) ... -
tail 命令详解
2017-03-05 00:24 730Linux -- tail 查看文件内 ... -
more 命令详解
2017-03-04 22:38 1262Linux -- more 查看文件内容 NAME ... -
tac 命令详解
2017-03-04 13:46 776Linux -- tac 查看文件内容 TAC(1) ... -
cat 命令详解
2017-03-04 13:08 693Linux -- cat 查看文件内容 CAT(1) ... -
pwd 命令详解
2017-02-27 22:56 523Linux -- pwd 查看当前目录操作 PWD ... -
split 命令详解
2017-02-27 20:52 909Linux -- split 文件分割操 ... -
Java链接MySQL数据库
2016-12-12 13:36 584Java链接MySQL数据库创建方式 import ja ... -
CentOS的yum源配置
2016-12-11 23:50 0yum - Yellowdog Updater Modi ...
相关推荐
C/C++实现mysql数据库的缓存管理 Linux下用C/C++写一个提高mysql数据库效率的数据缓存模块 缓存管理 window下用C/C++写一个提高mysql数据库效率的数据缓存模块 C/C++ mysql缓存 缓存 PS:记得要先把数据库给搭建起来
在Linux环境下进行MySQL数据库的源码安装前,需要准备一系列的基础工作,包括但不限于创建必要的目录结构、设置用户权限以及安装所需的编译工具等。 1. **创建安装目录**: - 创建MySQL的安装目录和数据存放目录,...
C/C++实现mysql数据库的缓存管理 Linux下用C/C++写一个提高mysql数据库效率的数据缓存模块 缓存管理 window下用C/C++写一个提高mysql数据库效率的数据缓存模块 C/C++ mysql缓存 缓存 PS:记得要先把数据库给搭建起来
通过本实验,参与者不仅能够了解如何在Ubuntu上搭建适合C++编程的数据库开发环境,还能够学会如何与Oracle和MySQL数据库服务器进行交互。 #### 实验环境要求 - **操作系统**:Ubuntu 9.10或更高版本。 - **Oracle ...
MySQL数据库是一种广泛使用的开源关系型数据库管理系统(RDBMS),由Oracle公司维护。它以其高效、稳定和易于管理的特点在Web应用、中小企业以及各种规模的项目中占据重要地位。MySQL支持多种操作系统,包括Windows...
本资源包含Linux下的MySQL Server、Client及Devel组件,使得用户能够在Linux系统上搭建和管理MySQL数据库。 MySQL Server是整个数据库系统的核心,它负责处理来自客户端的SQL请求,执行数据查询、更新和存储操作。...
### Linux Nginx MySQL PHP (LNMP) 环境搭建详细步骤 #### 一、基础知识简介 在深入了解LNMP的安装配置之前,我们先简要回顾一下这四个组件的基本概念: - **Linux**:一个开源的操作系统,是服务器领域的主流选择...
本文将详细介绍如何在 Centos7 系统上搭建一个完整的 PHP 开发环境,包括 Apache HTTP Server、MySQL 数据库以及 PHP 解释器的安装和配置过程。 #### 二、准备工作 - **硬件需求**:一台 Centos7 服务器。 - **...
在Linux环境下进行C++开发,首先需要一个稳定且配置良好的开发环境。本篇文章将指导你如何逐步搭建这样一个环境,特别关注于安装库文件和管理依赖。以下是一些关键步骤: 1. **系统安装与初始化** - 首先,你需要...
这个系统利用了MySQL数据库来持久化存储大量的销售记录,同时结合XML文件进行数据交换和配置管理。以下是对该系统相关知识点的详细介绍: 1. **QT框架**:QT是一个跨平台的C++库,它提供了丰富的用户界面组件和工具...
在Linux环境下搭建MySQL+PHP+Apache服务器是创建一个功能完备的Web开发平台的关键步骤,尤其对于需要处理动态内容和数据库交互的网站来说至关重要。本文将详细介绍如何在基于CentOS 6.2的Linux系统上安装这三个组件...
本文详细介绍了如何在Linux环境下搭建LAMP环境,包括卸载旧版本、系统环境部署及调整、安装所需开发包以及具体组件的安装过程。遵循以上步骤,您可以成功地在自己的Linux系统上搭建起一套完整的LAMP环境,从而支持...
### CentOS 下 MySQL 数据库源码安装教程 #### 概述 本文档旨在提供一份详细的CentOS 6.8环境下MySQL数据库5.6.14版本的源码安装指南...遵循本文档中的步骤,您可以顺利地在CentOS 6.8环境中搭建起MySQL数据库服务器。
毕设&课设&项目&实训-linux下开发的基于asio的即时通讯(IM)程序,使用mysql数据库和阿里云服务器搭建服务端程序,采用多线程。 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理...
在Linux环境下,构建一个稳定的Web开发平台通常涉及到三个关键组件:MySQL数据库服务器、PHP解释器和Apache网络服务器。这个过程被称为LAMP(Linux, Apache, MySQL, PHP)堆栈的安装。本文将详细介绍如何在基于...