CentOS6安装mongoDB3.2.9

简介:

一、MongoDB的安装

1、下载 

1
2
cd /data/packages
wget https: //fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.9.tgz

2、解压 

1
2
3
4
5
6
7
tar zxvf mongodb-linux-x86_64-rhel62- 3.2 . 9 .tgz
mv mongodb-linux-x86_64-rhel62- 3.2 . 9  /data/mongodb 
cd /data/mongodb/
mkdir -p /data/mongodb/data    #目录中创建一个存放数据文件的目录:
mkdir -p /data/mongodb/logs   #目录中创建一个存放日志的目录:
touch /data/mongodb/logs/mongodb.log
cd bin/

3、编辑配置文件: 

1
2
3
4
5
6
7
8
9
10
vim mongodb.conf 输入以下内容: 
 
# idae - MongoDB config start -  2016 - 08 - 26
dbpath=/data/mongodb/data   # 设置数据文件的存放目录
logpath=/data/mongodb/logs/mongodb.log  # 设置日志文件的存放目录及其日志文件名
bind_ip= 0.0 . 0.0 
port= 27017     # 设置端口号(默认的端口号是  27017 )
fork= true        # 设置为以守护进程的方式运行,即在后台运行
nohttpinterface= true
# idae - MongoDB config end -  2016 - 08 - 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
参数解释: 
--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的 5 %)。
--logappend 日志文件末尾添加,即使用追加的方式写日志
--journal 启用日志
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
--syncdelay 数据写入硬盘的时间(秒), 0 是不等待,直接写入
--notablescan 不允许表扫描
--maxConns 最大的并发连接数,默认 2000  
--pidfilepath 指定进程文件,不指定则不产生进程文件
--bind_ip 绑定IP,绑定后只能绑定的IP访问服务


4、创建新的账号: 

1
2
3
4
groupadd mongodb 
useradd mongodb -g mongodb 
chown -R mongodb:mongodb /data/mongodb
ln -s /data/mongodb/bin/mongo /usr/bin/mongo

5、启动: 

1
/data/mongodb/bin/mongod  --config /data/mongodb/bin/mongodb.conf

 a.报错:/lib64/libc.so.6: version `GLIBC_2.14' not found ,原因是glibc版本太低,软件编译时使用了较高版本的glibc引起的

    解决:http://www.cnblogs.com/gw811/p/3676856.html   

 b.报错:[main] Failed global initialization: BadValue: Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.

    解决:设置下环境变量就好了:   # export LC_ALL=C


-查看 mongodb 进程:

1
ps aux |grep mongodb

-查看 mongodb 服务的运行日志:

1
tail -100f /data/mongodb/logs/mongodb.log

-检查端口是否已被启动:

1
netstat -lanp | grep  27017

-杀死 mongodb 进程,即可关闭 mongodb 服务:

1
kill - 15  PID


6、设置开机自动启动mongodb 

方法有二:

1、把这句话写到把 /etc/rc.local,即可开机启动。

1
echo /data/mongodb/bin/mongod  --config /data/mongodb/bin/mongodb.conf >/etc/rc.d/rc.local

第二种:

2、将一个脚本放到/etc/init.d/

比如,命名为/etc/init.d/mongodb,则执行以下步骤即可:

1)要给它们赋予执行权限:

1
chmod +x /etc/init.d/mongodb

2)接着试一下是否可以启动、停止:

1
2
service mongodb start
service mongodb stop

3)最后设为开机启动:

1
chkconfig mongodb on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
 
# mongod - Startup script  for  mongod
 
# chkconfig:  35  80  15
# description: Mongo is a scalable, document-oriented database.
# processname: mongod
# config: /data/mongodb/conf/mongod.conf
# pidfile: /var/run/mongo/mongo.pid
 
source /etc/rc.d/init.d/functions
 
# things from mongod.conf get there by mongod reading it
 
if  [ $(id -u) !=  "0"  ]; then
     echo  "Permission Denied! Please use root to run again!"
     exit  1
fi
 
test -d /var/run/mongodb || (mkdir -p /var/run/mongodb ; chown mongod:mongod /var/run/mongodb)
 
# NOTE:  if  you change any OPTIONS here, you get what you pay  for :
#  this  script assumes all options are in the config file.
CONFIGFILE= "/data/mongodb/conf/mongodb.conf"
SYSCONFIG= "/etc/sysconfig/mongod"
 
export PATH=$PATH:/data/mongodb/bin
 
DBPATH=`awk -F=  '/^dbpath/{print $2}'  "$CONFIGFILE" `
OPTIONS= " --config $CONFIGFILE"
mongod= "/data/mongodb/bin/mongod"
echo  "db path is: " $DBPATH
echo $mongod
MONGO_USER=mongodb
MONGO_GROUP=mongodb
 
[ -r  "$SYSCONFIG"  ] && source  "$SYSCONFIG"
   
super () {
     su - $MONGO_USER -c  "PATH=$PATH::/data/mongodb/bin; $*"
}
   
start()
{
   echo -n $ "Starting mongod: "
#  daemon --user  "$MONGO_USER"  "numactl --interleave=all"  $mongod $OPTIONS
#daemon --user  "$MONGO_USER"  $mongod $OPTIONS
#
#   su - $MONGO_USER -c  "$mongod $OPTIONS"  -m -p
#  su - $MONGO_USER
   $mongod $OPTIONS
#   super  $mongod $OPTIONS
   echo $mongod$OPTIONS
   RETVAL=$?
   echo
   [ $RETVAL -eq  0  ] && touch /var/lock/subsys/mongod
}
   
stop()
{
   echo -n $ "Stopping mongod: "
   killproc -p  "$DBPATH" /mongod.lock -d  300  /data/mongodb/bin/mongod
   RETVAL=$?
   echo
   [ $RETVAL -eq  0  ] && rm -f /var/lock/subsys/mongod
}
 
restart () {
         stop
         start
}
 
ulimit -n  12000
RETVAL= 0
 
case  "$1"  in
   start)
     start
     ;;
   stop)
     stop
     ;;
   restart|reload|force-reload)
     restart
     ;;
   condrestart)
     [ -f /var/lock/subsys/mongod ] && restart || :
     ;;
   status)
     status $mongod
     RETVAL=$?
     ;;
   *)
     echo  "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
     RETVAL= 1
esac
 
exit $RETVAL

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------


二、用户授权和管理


1、进入mongodb的shell模式: 

1
/usr/bin/mongo

查看数据库列表: 

1
show dbs

查看当前db版本: 

1
db.version();

2、增加管理员权限:

userAdminAnyDatabase 这个角色拥有分配角色和用户的权限,但没有查写的缺陷 
root 这是超级管理员 
readWrite 有读写权限 
read 有读权限

进入shell模式: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/usr/bin/mongo
 
> use admin  //切换到admin数据库
> db.createUser(
... {
... user: "root" ,
... pwd: "test123" ,
... roles:[{role: "root" ,db: "admin" }]
... }
... );
Successfully added user: {
         "user"  :  "root" ,
         "roles"  : [
                 {
                         "role"  :  "root" ,
                         "db"  :  "admin"
                 }
         ]
}
>
1
2
3
4
5
6
7
> db.createUser( 
... { 
... user: “mongoRoot”, 
... pwd: “testMongoDB2016”, 
... roles:[{role:”userAdminAnyDatabase”, db:”admin”}] 
... } 
... );

验证一下,在哪里注册用户的要去哪个db里认证: 

1
db.auth(“mongoRoot”, “testMongoDB2016”)

此后可以用这个mongoRoot账号去创建某一数据库管理账号: 

1
> db.createUser({user: "test1" ,pwd: "test123" ,roles:[{ "role" : "readWrite" , "db" : "test1" }]})

但发现此时增加的账号不能在客户端登录,原因是mongodb版本错了: 
先退出 mongod 服务

use admin 
db.auth(“root”, “testMongoDB2016”) 
db.shutdownServer() 
再在无认证情况下打开 mongod 
use admin 
db.dropUser(“hhq163”) 
db.system.version.update({ “_id”:”authSchema”},{$set:{“currentVersion”:3}}) 
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]}) 
再以认证的形式启动mongodb

如果需要创建某一个新DB的账号: 
需要在shell下执行: 
use TestDB 
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”TestDB”}]})

vim /usr/local/mongodb/bin/mongodb.conf 
在文件末尾增加以下这一行: 
auth=true

8、关闭数据库服务器: 
use admin 
db.shutdownServer()

如果开户安全认证,则要先认证: 
use admin 
db.auth(“root”, “testMongoDB2016”) 
db.shutdownServer()

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1843040如需转载请自行联系原作者

qianghong000
相关文章
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
1883 69
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
4845 3
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
1203 78
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
535 80
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
1152 18
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2879 16
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
953 10
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
895 18
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
1017 2
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
2032 4