一.安装单机版
- 装各个 Linux 平台依赖包
CentOS: yum install libcurl openssl - MongoDB安装包下载地址:https://www.mongodb.com/download-center#community
- 这里我们选择 tgz 下载,下载完安装包,上传到linux服务器,并解压 tgz
tar -zxvf /usr/local/mongo/mongodb-linux-x86_64-4.0.13.tgz # 解压
mv mongodb-linux-x86_64-4.0.13.tgz /usr/local/mongo/mongo1 # 将解压包拷贝到指定目录
- MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
#export PATH=<mongodb-install-directory>/bin:$PATH
#<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 usr/local/mongo/mongo1 即
export PATH=usr/local/mongo/mongo1/bin:$PATH
或者:通过在配置文件添加环境变量
[root@bakserver /]# vim /etc/profile //在文件最后面添加下面两行
……
export MONGODB_HOME=/usr/local/mongo/mongo1
export PATH=$PATH:$MONGODB_HOME/bin
- 创建数据库目录
mongodb1下创建目录data,data下创建目录 conf、db、logs
conf目录下创建文件mongodb.conf
dbpath=/usr/local/mongo/mongo1/data/db
logpath=/usr/local/mongo/mongo1/data/logs/mongod.log
port=27017
fork=true
- 启动 Mongodb 服务
#使用conf配置文件启动
mongod --config /usr/local/mongo/mongo1/data/conf/mongodb.conf
#不使用conf配置文件
mongod --dbpath /usr/local/mongo/mongo1/data/db --logpath /usr/local/mongo/mongo1/data/logs/mongod.log --fork
打开 //usr/local/mongo/mongo1/data/logs/mongod.log文件看到以下信息,说明启动成功。
# tail -10f /usr/local/mongo/mongo1/data/logs/mongod.log
2020-07-09T12:20:17.391+0800 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
2020-07-09T12:20:17.392+0800 I NETWORK [listener] Listening on 127.0.0.1
2020-07-09T12:20:17.392+0800 I NETWORK [listener] waiting for connections on port 27017
- MongoDB 后台管理 Shell
[root@localhost bin]# cd /usr/local/mongo/mongo1/bin
[root@localhost bin]# mongo
由于它是一个JavaScript shell,可以运行一些简单的算术运算
> 2+2
4
> 3+6
9
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("5f069bdb4e02f8baf90f1184"), "x" : 10 }
>
- 创建账号
以非授权的模式启动MongoDB:mongod --config /usr/local/mongo/mongo1/data/conf/mongodb.conf
> use admin #切换到admin数据库
switched to db admin
> db.createUser({user:"test",pwd:"test",roles:["root"]}) #添加管理员用户
Successfully added user: { "user" : "test", "roles" : [ "root" ] }
> db.auth("test", "test")#认证
1
以授权的模式启动MongoDB,,给使用的数据库添加用户:mongod --config /usr/local/mongo/mongo1/data/conf/mongodb.conf --auth
备注:
1.–auth代表授权启动,需要帐号密码才能访问
2.auth=true可以加到mongo.conf配置文件里面去进行统一管理
1.切换数据库
use test
2.创建用户
db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]})
- 停止
ps -ef|grep mongo
kill -9 进程ID
参考地址:https://www.runoob.com/mongodb/mongodb-linux-install.html
https://blog.csdn.net/cbuy888/article/details/82225058?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-3.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-3.nonecas
二、安装集群
- 我用了3个节点(主,备,仲裁节点),先装3个单机版,1.2.3.4步相同,第5步,mongodb.conf分别为:
#master.conf
dbpath=/usr/local/mongo/mongodb1/db
logpath=/usr/local/mongo/mongodb1/logs/mongod.log
pidfilepath=/usr/local/mongo/mongodb1/master.pid
directoryperdb=true
logappend=true
replSet=mongors
bind_ip=192.168.71.75
port=27021
oplogSize=10000
fork=true
#noprealloc=true
#slaver.conf
dbpath=/usr/local/mongo/mongodb2/db
logpath=/usr/local/mongo/mongodb2/logs/mongod.log
pidfilepath=/usr/local/mongo/mongodb2/slaver.pid
directoryperdb=true
logappend=true
replSet=mongors
bind_ip=192.168.71.75
port=27022
oplogSize=10000
fork=true
#noprealloc=true
#arbiter.conf
dbpath=/usr/local/mongo/mongodb3/db
logpath=/usr/local/mongo/mongodb3/logs/mongod.log
pidfilepath=/usr/local/mongo/mongodb3/arbiter.pid
directoryperdb=true
logappend=true
replSet=mongors
bind_ip=192.168.71.75
port=27023
oplogSize=10000
fork=true
#noprealloc=true
- 启动这3个节点
/usr/local/mongo/mongodb1/bin/mongod --config /usr/local/mongo/mongodb1/conf/mongodb.conf
/usr/local/mongo/mongodb2/bin/mongod --config /usr/local/mongo/mongodb2/conf/mongodb.conf
/usr/local/mongo/mongodb3/bin/mongod --config /usr/local/mongo/mongodb3/conf/mongodb.conf
- 在三个节点中选择一个连接mongodb
./mongo 192.168.71.75:27021
show admin
config_test={_id : 'mongors',members : [{_id : 0, host : '192.168.71.75:27021',priority:1},{_id : 1, host : '192.168.71.75:27022',priority:2},{_id : 2, host : '192.168.71.75:27023',arbiterOnly:true}]}
rs.initiate(config_test) #使配置生效
rs.status(); #查看副本状态
health表示副本集中该节点是否正常,0表示不正常,1表示正常;state表示节点的身份,0表示非主节点,1表示主节点;stateStr用于对节点身份进行字符描述,PRIMARY表示主节点,SECONDARY表示副节点;name是副本集节点的ip和端口信息
db.printSlaveReplicationInfo();#查看副本同步状态
- 主库配置用户
show admin
db.createUser({user:'admin',pwd:'admin',roles:['userAdminAnyDatabase']})
- 增加安全认证机制KeyFile还未做。。。。。。
参考地址:https://blog.csdn.net/weixin_30892037/article/details/98769429
https://blog.csdn.net/luonanqin/article/details/8497860