当前位置:首页 » 编程软件 » linux编译mongodb

linux编译mongodb

发布时间: 2022-09-07 10:02:35

‘壹’ 如何在linux操作mongodb

首先到下面的工具原料中的mongodb的官...
1

解压对应的安装包 命令如下: ...
2

因为mongodb不需要像别的数据库那样繁...
3

然后为mongodb创建数据库存放的位置和...
4

进到mongodb下面的bin目录下查看mongod...
5

启动mongodb数据库,对应的参数说明用绿...
6

为了安全期间建议关闭28017端口防止信...
7

做好上面的操作就可以进入mongodb的客..

‘贰’ linux mongodb 怎么使用

1.连接mongodb
mongo/bin目录下执行
./mongo
2.查看数据库
show dbs
3.查看当前所在数据库
db
4.创建数据库
use openfire (临时创建 如果不做操作 则离开后被系统删除)
5.在当前数据库删除当前数据库
db.dropDatabase()
6.查看当前库的所有用户
show users
7.查看集合(或者叫表)
show collections
8.创建集合
db.createCollection(“mycollection”)
9.创建集合并制定集合的属性
db.createCollection(“mycol”, { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

字段
类型
描述

capped Boolean (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoIndexID Boolean (可选)如果为true,自动创建索引_id字段的默认值是false。
size number (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。
max number (可选)指定封顶集合允许在文件的最大数量。
10.另一种创建集合
(当插入一条数据时,不存在mongodb会帮我们创建,和创建数据库同理)
db.MySecondCollection.insert({“name” : “ming”})
11.删除当前库的一个集合
db.CollectionName.drop()
12.插入一条数据
db.MyFirstCollection.insert({“_id”:”3”,”title”:”mongotest”,”description”:”this is test”})
注意:插入的都是JSON形式的,所以一定要用{},否则会报错:
Sat Mar 19 14:22:39.160 SyntaxError: Unexpected token :
13.插入一条_id存在的数据
db.MyFirstCollection.insert({“_id”:”3”,”title”:”mm”})
输出:E11000 plicate key error index: openfire.MyFirstCollection.$_id_ p key: { : “3” }
解释:_id即是mongodb的默认主键,默认自动生成,我们可以直接设置以达到我们想要的目的

‘叁’ Linux安装MongoDB双机热备份(主从复制)

主从复制作用:数据备份、读写分离
双机热备份:部署两个节点的MongoDB服务,配置一主一从,主节点添加数据,将自动备份到从节点上面,保证主机宕机后数据不丢失,同时可以继续提供数据读取服务(主服务挂掉,从服务将无法在进行写入数据,只能提供数据读取服务)
一主多从:部署多个节点的MongoDB服务,配置一主多从,数据也会自动备份到所有从节点上面,保证主机宕机后数据不丢失,同时可以根据从节点的优先级进行选取新的主节点,继续提供读写服务(主从关系跟服务设置的优先级有直接关系 优先级参数:priority 数字越大优先级越高)

使用上面的方式,在不同服务器上安装并启动MongoDB服务

将启动时使用的配置文件mongodb.conf中添加下面的副文本集名称配置,将权限控制参数改为false(auth=false),然后将服务进行重新启动即可(testrs是自定义的副本集名称)
#使用此设置来配置复制副本集。指定一个副本集名称作为参数,所有主机都必须有相同的名称作为同一个副本集
replSet=testrs

然后启动每个服务的客户端查看当前节点为主节点还是从节点;
1). 如果服务部署在不同服务器上,直接启动/bin目录下的mongo即可 命令:./ mongo
2). 如果服务部署在同一台服务器上,使用不同端口及配置文件进行启动的,启动客户端使用该命令 命令:./mongo 127.0.0.1:27018/

经过上面的一系列操作后,主从配置就完成了,接下来可以进行数据同步测试

第一步:在主库上面切换到admin,然后进行添加数据(命令:db.testdb1.insert([{"name":"zs"}]))

在从库上查询该数据(命令:db.testdb1.find({name:"zs"})),会出现下面如图的错误,因为从库没有查询数据权限,所以需要设置查询权限

设置从库查询权限,使用命令:rs.secondaryOk()
然后在使用查询命令进行查询(命令:db.testdb1.find({name:"zs"}))就会看到如下图的查询结果:

如上图所示,数据已经同步到从库上面了,这样双机热备份就已经实现了,上面的情况不包含权限控制

上面的情况已经完成了MongoDB的主从复制功能,但是我们把权限没有开放,启动时使用的配置中auth配置的值为false,说明没有添加权限,接下来就开放一下权限配置;
首先需要主从之间通信的一个keyFile文件,根据官网提供的说明,这个keyfile是可以任意内容的,只要保证所有集群中的机器都拥有同样的文件即可。

我这里将keyFile文件放到了MongoDB的bin目录下了,使用openssl rand -base64 1024 > /usr/local/mongodb-master/bin/mongodb.key 命令生成;

然后将mongodb.key文件复制到每台从服务上面,在每台服务的启动文件上添加 keyFile=/usr/local/mongodb-master/keyfile/mongodb.key 配置项 ,然后将auth属性值改为true,这样就完成了权限配置

重启主从两个节点,这样主机添加的数据,就会同步到从机上面了!!!

添加或删除从节点参考文章:
https://blog.csdn.net/weixin_44839444/article/details/105666163

‘肆’ linux下我mongodb存储快要满了,怎么扩充存储大小,且不删除原来的数据

如果是你的硬盘满了,你可以再用别的硬盘跟这个硬盘构成RAID。

如果是你的一个BSON doc快满了,那么说明你的存储的数据结构是有问题的,如果可能的话,应该重新设计以使BSON doc不超过限制;如果不能的话,那么你可以修改

源文件“mongo/src/mongo/bson/util/builder.h”里面的

constintBSONObjMaxUserSize=16*1024*1024;

到你需要的大小,然后重新编译mongodb。但不要改的太大,因为每一个BSON Object都是要全部读进内存里的。

‘伍’ linux下怎么安装64位的mongodb

方法/步骤

下载,解压mongodb文件。把解压的文件放在/opt/下面(存放目录安装自己习惯存放)
# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz
# tar -zxvfmongodb-linux-x86_64-2.0.4.tgz
# mv mongodb-linux-x86_64-2.0.4.tgz mongodb2.0.4 (为了方便,把它从命名的更加简洁些)
创建mongodb存放的数据文件、日子文件(mongodb_db、mongodb_logs)
# cd /
#mkdir mongodbdata
#cd mongodbdata
#mkdir mongodb_db
#mkdir mongodb_logs
进入刚才解压的mongodb2.0.4/bin 目录,启动mongodb,指定输出路径
#cd /opt/mongodb2.0.4/bin
# ./mongod --dbpath=/mongodbdata/mongodb_db --logpath=/mongodbdata/mongodb_logs/mongodb.log --logappend&
执行完会出现“ all output going to: /mongodbdata/mongodb_logs/mongodb.log”
检查端口是否启动,端口为:27017
# netstat -lanp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 560/mongod unix 2 [ ACC ] STREAM LISTENING 128435 560/mongod /tmp/mongodb-27017.sock
启动成功。
5
第5:可以用mongodb客户端,连接数据库了。进入到bin目录,执行mongo
# ./mongo
MongoDB shell version: 2.0.4connecting to: test
>use mongo_test 创建库
>db.createCollection("test") 创建表

‘陆’ linux怎么修改mongodb的配置文件

以下是用mongo的shell打开数据库:#创建一个库:
use mytest
#添加一个用户account,pwd
db.addUser("wangming","1234")
#查看当前库中的用户
db.system.users.find()
#连接时候通过auth命令进行连接(account,pwd)
db.auth("wangming","1234")
如果是用pymongo连接mongo,如下
#连接mongodb服务
con = MongoClient(host,port)
#选择数据库
db = con[dbname]
#用用户名登陆
db.authenticate(account, pwd)

‘柒’ linux 启动mongodb

应该是配置文件里没有指定端口信息
conf文件中增加下面这行
port = 27017 # 实例运行在27017端口(默认)

如果conf文件不会写,其实可以不引用配置文件,使用完全默认的,直接启动mongodb即可

mongod --fork --syslog

‘捌’ mongodb 编译报错,我在Linux下的程序,src下面的库都编译过了生成了.a库文件,但mian下面生成执行文件报错

你可以在头文件里设置目录啊,直接"include "/.../.../xxx.h""文件就可以了

‘玖’ linux下安装mongodb后怎么使用

首先到下面的工具原料中的mongodb的官网下载对应你系统的安装包,拷贝到你的linux系统上面,如果有网络可以直接用wget下载

解压对应的安装包
命令如下:
tar zxf mongodb-linux-i686-2.0.2.tgz

因为mongodb不需要像别的数据库那样繁琐的配置解压后放到惯例的/usr/local目录下面,当然你可以放到任何地方,放到/usr/local下面方便管理
命令如下:
mv mongodb-linux-i686-2.0.2/* /usr/local/mongodb

然后为mongodb创建数据库存放的位置和日志文件,默认是在/data/db下面,同样为了方便就在mongodb下面建立了相应的目录

进到mongodb下面的bin目录下查看mongodb的帮助文档和我们用到的启动参数

启动mongodb数据库,对应的参数说明用绿色表明了

为了安全期间建议关闭28017端口防止信息外泄

做好上面的操作就可以进入mongodb的客户端开始你的mongodb之旅了.
步骤阅读

‘拾’ linux下怎么安装mongodb

下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解压

mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录

MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
export PATH=<mongodb-install-directory>/bin:$PATH

<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。

创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
mkdir -p /data/db

命令行中运行 MongoDB 服务
你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
$ ./mongod
2015-09-25T16:39:50.549+0800 I JOURNAL [initandlisten] journal dir=/data/db/journal
2015-09-25T16:39:50.550+0800 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
2015-09-25T16:39:50.869+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.16
2015-09-25T16:39:51.206+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.52
2015-09-25T16:39:52.775+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 7.7

MongoDB后台管理 Shell
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
$ cd /usr/local/mongodb/bin
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
……

由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
> 2+2
4
> 3+6
9

现在让我们插入一些简单的数据,并对插入的数据进行检索:
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
>

第一个命令将数字 10 插入到 runoob 集合的 x 字段中。

MongoDb web 用户界面
MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。
$ ./mongod --dbpath=/data/db --rest

MongoDB 的 Web 界面访问端口比服务的端口多1000。
如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017。

热点内容
android获取天气 发布:2025-03-21 06:35:50 浏览:624
什么密码扣 发布:2025-03-21 06:35:17 浏览:712
如何使安卓手机秒变iphone 发布:2025-03-21 06:34:20 浏览:703
app服务端源码 发布:2025-03-21 05:56:41 浏览:103
信道估计算法 发布:2025-03-21 05:37:33 浏览:866
怎么用命令方块做出服务器 发布:2025-03-21 05:22:58 浏览:799
歌曲脚本 发布:2025-03-21 05:19:31 浏览:570
python的range函数 发布:2025-03-21 05:18:48 浏览:721
php信息录入系统 发布:2025-03-21 05:17:21 浏览:346
安卓手机里的hms是什么 发布:2025-03-21 05:15:56 浏览:35