最近装了个mongodb,就写下记录下吧。
1.先去mongodb的官网,去下载对应版本的mongodb
centos是下面这个,直接用下面命令,wget就好了。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz2.解压下来,移动到你想放到的目录。我的是在/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.confmongodb.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()" ;; esacchmod +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了。
参考链接
链接一
觉得有用,就帮忙点个赞吧,亲。