编译运行miniob最小数据库系统

这篇具有很好参考价值的文章主要介绍了编译运行miniob最小数据库系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

minibo是一个用于教学的小型数据库系统,麻雀虽小五脏俱全,该项目包含了数据库的核心内容,并且代码量小,适合新手学习,最近由于需要学习c/cpp,因此打算从这个项目入手,本文就介绍编译运行miniob的方法。

下载源代码

首先去github下载源代码

GitHub - oceanbase/miniob: MiniOB is one mini database, helping developers to learn how database works.

如果github下载很慢可以去gitee上下载

miniob: fork from miniob (gitee.com)

编译的时候最好在linux环境下进行编译,我使用centos虚拟机进行编译(后来换成ubuntu子系统了),安装子系统的教程可以参考这篇博客

(8条消息) Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 )_win10 linux_凌云飞鸿的博客-CSDN博客

linux编译环境初始化

在进行编译的时候我们需要初始化我们的编译环境,miniob的官方教程可以在下面的网址查看

MiniOB 简介 - MiniOB (oceanbase.github.io)

首先需要安装cmake,网上很多教程都是让你去官网下载,官网下载就是从github中下载,如果上不了github可以到看看下面的博客,博客中提供了百度网盘下载地址

(9条消息) centos7安装CMake3.21(离线安装)_centos 离线安装make_zhongxj183的博客-CSDN博客

按照博客里的顺序,我没有安装gcc(因为之前看系统里面已经有gcc了),而是先安装openssl,然后再安装cmake,然后就报错了

编译运行miniob最小数据库系统,MiniOB数据库,数据库

我们需要重新安装gcc,可能是系统自带的gcc不支持c++的编译,解决方法在下面这篇博客里

(9条消息) Cannot find a C++ compiler that supports both C++11 and the specified C++ flags. Please specify one_can not find a c++_饥饿小猪的博客-CSDN博客先安装gcc-c++

yum install -y gcc gcc-c++ 

然后再执行

./configure 

如果下载很慢可以更换一下yum源,方法在下面的博客里

(9条消息) Centos7更换yum国内源教程_centos7更换yum源_tianles的博客-CSDN博客

接着再次尝试安装cmake的时候发现找不到openssl,刚刚明明已经安装过了,不过不起作用

编译运行miniob最小数据库系统,MiniOB数据库,数据库

使用yum再安装一次

yum install openssl-devel 

然后再安装cmake就行了,编译的过程挺久的,编译完后查看cmake的版本,如果正常显示则表示安装成功

编译运行miniob最小数据库系统,MiniOB数据库,数据库

官方教程中说,建议gcc版本要在8.3以上,因此我们需要更新gcc

(9条消息) CentOS升级gcc到高版本(全部版本详细过程)_乞力马扎罗の黎明的博客-CSDN博客

我使用下面的命令进行更新

yum -y install centos-release-scl 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 

scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

此时查看gcc版本会发现已经更新到9.3.x了

编译运行miniob最小数据库系统,MiniOB数据库,数据库

至此准备工作都完成了

编译代码

按照官方教程,切换到项目根目录,然后执行

bash build.sh init 

此时发现系统没有安装git

编译运行miniob最小数据库系统,MiniOB数据库,数据库

我们需要安装git,执行下面的命令进行安装

yum install -y git

接着安装的时候发现需要安装几个依赖库,安装依赖库的教程可以在oceanbase的官网找到,由于github访问较慢,所以我直接到gitee上下载

1.5 MiniOB 开发调试环境搭建-开发者入门教程-OceanBase文档中心-分布式数据库使用文档

安装jsoncpp

cd /data/miniob-main

git submodule add https://gitee.com/get-code-from-github/jsoncpp.git deps/jsoncpp

cd deps/jsoncpp

mkdir build

cd build

cmake -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF ..

make

make install

安装libevent

cd /data/miniob-main

git submodule add https://gitee.com/zwwlyy/libevent.git deps/libevent
cd deps/libevent

mkdir build

cd build

cmake .. -DEVENT__DISABLE_OPENSSL=ON

make

make install 

安装googletest

cd /data/miniob-main

git submodule add https://gitee.com/xinzhige/googletest.git deps/googletest
cd deps/googletest

mkdir build

cd build

cmake ..

make

make install

至此依赖库都已经安装完毕,可以开始编译项目

cd /data/miniob-main

mkdir build

cd build

cmake .. -DEBUG=ON

编译完后发现还是报错,后来就放弃centos,转而使用WSL在ubuntu20上进行编译了。

ubuntu上编译比centos简单很多,比如cmake和gcc,g++等等工具都可以直接使用apt install来安装。

需要在ubuntu上将之前的jsoncpp,googletest和libevent三个库重新安装一遍,除此之外,我们还需要安装MbedTLS库

cd /data/miniob-main

git submodule add https://gitee.com/kevinjen1031/mbedtls.git deps/MbedTLS
cd deps/MbedTLS

mkdir build

cd build

cmake ..

make

make install

然后还需要安装openssl库

apt-get install libssl-dev

然后还需要安装benchmark

cd /data/miniob-main

git submodule add https://gitee.com/TaylorZhang/benchmark.git deps/benchmark

cd deps/benchmark

mkdir build

cd build

// 将之前下载的 deps/googletest 复制到 deps/benchmark 文件夹下 

cmake .. -DCMAKE_BUILD_TYPE=RELEASE

make

make install

至此环境终于全部安装完毕,可以开始编译miniob了

cd /data/miniob-main

bash build.sh

此时又给我来了一个这样的报错

编译运行miniob最小数据库系统,MiniOB数据库,数据库

我定位到是代码中的这一句话有问题

编译运行miniob最小数据库系统,MiniOB数据库,数据库

我没读过代码,所以直接先将这一句话注释掉,然后编译成功,暂时先这么处理吧。

运行代码

编译完成后可以在bin目录下看到可执行文件

编译运行miniob最小数据库系统,MiniOB数据库,数据库

官方的教程在这里

如何运行 - MiniOB (oceanbase.github.io)

我们以最简单的方式运行

 ./observer -f ../../etc/observer.ini -P cli

我们可以通过命令行的方式和数据库进行交互,我们可以简单测试一下 CREATE TBALE 和 INSERT 语句。

CREATE TABLE t_date(id int, num int, price float, addr char, birthday date);

insert into t_basic values(1,1, 'a', 1.0);

insert into t_basic values(2,2, 'b', 2.0);

select * from t_basic;

编译运行miniob最小数据库系统,MiniOB数据库,数据库

这个数据库好像只能执行简单的sql语句,现在就算编译完成了,后续可以开始学习源代码啦。

编译运行miniob最小数据库系统,MiniOB数据库,数据库文章来源地址https://www.toymoban.com/news/detail-619308.html

到了这里,关于编译运行miniob最小数据库系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程(2)

     几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。 宾馆管理系统通过提供顾客和员工信息之间

    2024年02月03日
    浏览(54)
  • 基于java Swing 和 mysql实现的购物管理系统(源码+数据库+说明文档+运行指导视频)

    本项目是一套基于java Swing 和 mysql实现的购物管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 技术栈:Jav

    2024年02月10日
    浏览(45)
  • 基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)

    本项目是一套基于java swing和mysql实现的汽车租赁管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 该系统功能

    2024年02月10日
    浏览(47)
  • 基于java Swing 和 mysql实现的飞机订票系统(源码+数据库+ppt+ER图+流程图+架构说明+论文+运行视频指导)

    本项目是一套基于java Swing 和 mysql实现的飞机订票系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 技术栈:Jav

    2024年02月11日
    浏览(37)
  • 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。

    目录 演示视频 基本介绍 功能结构 论文目录 系统截图 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。 系统中的功能模块主要是实现管理员和员工的管理; 管理员:个人中心、普通员工管理、办公文件管理、公共信

    2024年02月10日
    浏览(61)
  • QT学习笔记-开发环境编译Qt MySql数据库驱动与交叉编译Qt MySql数据库驱动

    如果需要在QT程序中实现与MySQL数据库的交互,那么必不可少的一环就是对Qt MySql数据库驱动的编译。 操作系统:Windows10 专业版 64位 Qt版本:Qt 5.15.2 开发环境Qt安装路径:D:Qt 交叉编译服务器:Ubuntu 18.4 交叉编译服务器Qt安装路径:/opt/Qt 目标芯片:rk3568 目标平台:arm64 Qt安装

    2024年02月11日
    浏览(75)
  • 运行Springboot测试类查询数据库数据显示白网页

    问题 运行Springboot测试类时,查询数据库里面数据显示如下白网页 程序报如下错误   解决方案   Spring Boot应用未能启动的原因是它没有找到合适的数据库配置具体来说,它需要一个数据源(DataSource),但未能在你的配置中找出,也没有找到任何嵌入式数据库(H2, HSQL 或 Der

    2024年02月05日
    浏览(39)
  • 在Docker中运行PostgreSQL数据库

    1.下载Docker 2.设置DockerHub账号 3.运行Docker并下载Image 4.启动PostgreSQL Image 5.连接到数据库运行SQL 开放端口从Docker容器到主操作系统,这将允许我们使用DBeaver来连接数据库。 首先登录进Docker,使用docker login命令。 登录进去之后,可以下载Image,使用docker pull命令。 也可以使用d

    2024年02月08日
    浏览(48)
  • 优化WordPress数据库提升网站运行速度

    WordPress的文章、评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表来存储日志,页面,附件,导航菜单等数据,根据使用的时间越来越长,堆积的数据越来越多,从而运行

    2023年04月23日
    浏览(35)
  • 运行在容器中Postgres数据库数据损坏后如何恢复?

    在使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss, 我介绍了将 RssHub + Tiny Tiny RSS 部署到 K8s 集群中的方案. 其中 TTRSS 会用到 Postgres 存储数据, 也一并部署到 K8s 容器中. 但是最近, 由于一次错误操作, 导致 Postgres 数据库的 WAL 损坏, Postgres 的 Pod 频繁 CrashBackoffLoop. 具体报

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包