linux6.5 安装mongodb

xiaoxiao2021-02-28  102

最近装了个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了。

参考链接

链接一

觉得有用,就帮忙点个赞吧,亲。
转载请注明原文地址: https://www.6miu.com/read-61825.html

最新回复(0)