linux6.5 安装mongodb

最近装了个mongodb,就写下记录下吧。

1.先去mongodb的官网,去下载对应版本的mongodb

centos是下面这个,直接用下面命令,wget就好了。

wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz

2.解压下来,移动到你想放到的目录。我的是在/usr/local/server/mongodb/下面

3.在mongodb目录下创建data数据目录,创建log日志目录。

4.然后进入到mongodb目录下的bin目录

登录有两种方式

1)直接指定参数

需要权限的登录

/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend  --auth  --port=27017 --fork

不需要权限的登录

./mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/log/mongo.log --logappend --port 27017 --fork

查看是否启动成功

#查看MongoDB是否启动
netstat -lanp | grep "27017" 

2)指定配置文件

./mongod --config /usr/local/server/mongodb/mongodb.conf

mongodb.conf内容

port=27107#端口号

dbpath=/usr/local/server/mongodb/data #数据库路径

logpath=/usr/local/server/mongodb/log/mongo.log #日志输出文件路径

#pidfilepath=/usr/local/server/mongodb/mongo.pid

fork=true #设置后台运行

logappend=true #日志输出方式

#shardsvr=true

#directoryperdb=true

auth=false #关闭认证


#还可以添加自己需要的参数在其中。

5.参数解释: –dbpath 数据库路径(数据文件)

    --logpath 日志文件路径
    --master 指定为主机器
    --slave 指定为从机器
    --source 指定主机器的IP地址
    --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
    --logappend 日志文件末尾添加
    --port 启用端口号
    --fork 在后台运行
    --only 指定只复制哪一个数据库
    --slavedelay 指从复制检测的时间间隔
    --auth 是否需要验证权限登录(用户名和密码)

(补充)关于auth认证,今天没事我又试了下,结果发现特别厉(keng)害(die)。

        添加admin数据库管理员
        use admin;
        db.createUser(
          {
            user: "admin",
            pwd: "password",
            roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
          }
        )
        认证
        use  admin;
        db.auth("admin","password");
        ok,返回1,反则报错。(记得先use admin)
        当你添加完之后,登录,去查看别的数据库,他会告诉你,没有权限。。。你还需要针对你要看的库建立账号。
        db.createUser(
         {
           user: "yu",
           pwd: "yu12346",
           roles: [
              { role: "readWrite", db: "yu" }
           ]
         }
        )
        //只有上面添加的对admin数据库有操作权限的账号,才可以添加,然后,在重新认证一遍就ok了。就可以看到你要看的这个数据库的数据了。   readOnly  只读属性

6.进入mongodb,先进入mongodb的bin目录下

./mongo

或者

./mongod --config /usr/local/server/mongodb/mongodb.conf

关闭则是

use admin;
db.shutdownServer();

或者

./mongo 127.0.0.1:40000/admin --eval "db.shutdownServer()" #关闭MongoDB

设置开机启动MongoDB
vi /etc/rc.d/init.d/mongod,内容如下

ulimit -SHn 655350

#!/bin/sh

#chkconfig: - 6436

#description:mongod

case $1 in

start)

/usr/local/server/mongodb/bin/mongod --maxConns 20000 --config /usr/local/server/mongodb/mongodb.conf

;;

stop)

/usr/local/server/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"

;;

status)

/usr/local/server/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"

;;

esac

chmod +x /etc/rc.d/init.d/mongod #添加脚本执行权限

chkconfig mongod on #设置开机启动

而且mongod作为服务来启动

service mongod start #启动MongoDB
service mongod stop #停止MongoDB

把mongodb添加环境变量
vi /etc/profile #添加环境变量,编辑,在最后一行添加下面的代码

export PATH=$PATH:/usr/local/server/mongodb

:wq! #保存退出

source /etc/profile #使配置立即生效

mongo #进入MongoDB控制台

show dbs #查看默认数据库

use admin #切换到admin数据库

exit #退出MongoDB控制台

其他的基本操作

查所有的数据库还有大小。
show dbs;  
查看所有的集合
show collections 
创建集合
db.createCollection("testSegment") 
mongo组合查询   between x and x
db.travel_notes3.find({"storage_time" : {$lt :1495382400000,$gt : 1494777600000},"reserved_field":"白沙湖"}).limit(5).sort({read_count:-1});
修改命令
只会修改一条
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
修改多条,加上multi参数
db.test_yu.update({'importStatus':1},{$set:{'importStatus':0}},{multi:true});
建索引
db.travel_notes.ensureIndex({"reserved_field":1},{"background":true});
插入数据
db.movie.insert({"name":"yu","age":25,"hometown":"henan"})
统计
db.data_02_import_fail.find({importStatus:0}).count();
mongo删除所有数据
db.testSegment.remove({});

删除一条数据
db.test_ttlsa_com.remove({"ban_friends_id":"BAN121113"})

7.安装中遇到的问题

about to fork child process, waiting until server is ready for connections.
forked process: 23054
ERROR: child process failed, exited with error number 1 

这算是一个Mongod 启动的一个常见错误,非法关闭的时候,lock 文件没有干掉,第二次启动的时候检查到有lock 文件的时候,就报这个错误了。

mongod.lock文件是mongo服务端启动后在硬盘中创建的一个锁文件,

如果你正常退出mongod服务,该文件即使还存在,也不会影响下一次启动mongod服务的。

这个文件还会记录mongod在运行过程中的一些状态,以便在正常重新启动服务时能够获取异常信息提示。

解决方法:进入 mongod 上一次启动的时候指定的 data 目录 –dbpath=/usr/local/server/mongodb/data,删除mongo.lock

rm mongo.lock

再执行:

./mongod  --repair

然后再重启就ok了。

参考链接

链接一

          觉得有用,就帮忙点个赞吧,亲。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值