1.下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.6.tgz
下载完成后解压缩压缩包
tar zxf mongodb-linux-x86_64-rhel62-3.4.6.tgz
2. 安装准备
将mongodb文件夹命名为mongdb文件夹
mv mongodb-linux-x86_64-rhel62-3.4.6 mongodb
创建数据库文件夹与日志文件
mkdir -p /usr/local/mongodb/data
mkdir -p /usr/local/mongodb/data/db
mkdir -p /usr/local/mongodb/data/logs
touch /usr/local/mongodb/data/logs/mongodb.log
3. 启动mongodb
# cd到mongodb目录下的bin文件夹启动mongodb
# //下面这个是需要权限的登录方式, 用户连接需要用户名和密码
# ./mongod --dbpath=/usr/local/mongodb/data --logpath=/home/mongodb/logs --# logappend --auth --port=27017 --fork
# //这个是不需要密码的
# ./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs -# -logappend --port=27017 --fork
# 或者
在data下面创建文件 mongodb.conf
touch mongodb.conf
里面内容为:
port = 27017
dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/data/logs/mongodb.log
fork = true
logappend = true
#auth = true
保存完后,回到bin目录下,输入
./mongod --config /usr/local/mongodb/data/mongodb.conf
。
当前启动方式是不需要用户名和密码的
6,创建用户
进入bin目录下, 输入./mongo 连接到mongodb中,
输入use smb-web(smb-web:为自己创建的项目,需要与下面的项目名对应)
创建用户名,密码和角色。
db.createUser({user:'root',pwd:'smb112233',roles:[{role:'dbOwner',db:'smb-web'}]});
至此,用户和密码已创建完毕。
7,关闭mongodb。
./mongod --shutdown --dbpath /usr/local/mongodb/data/
或者
ps -ef | grep mongo
kill -9 端口号
8
修改刚才的mongodb.conf文件,auth=true。 保存。
重启mongodb,再登录到mongodb中,
[root@iZ253cglmsxZ bin]# ./mongo
MongoDB shell version: 3.2.9
connecting to: 127.0.0.1:27017/test
> use smb-web
switched to db travel
> show collections
2016-09-05T16:46:13.013+0800 E QUERY [thread1] Error: listCollections failed: {
"ok" : 0,
"errmsg" : "not authorized on picadb to execute command { listCollections: 1.0, filter: {} }",
"code" : 13} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:773:1
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:785:19
DB.prototype.getCollectionNames@src/mongo/shell/db.js:796:16
shellHelper.show@src/mongo/shell/utils.js:754:9
shellHelper@src/mongo/shell/utils.js:651:15
@(shellhelp2):1:1
> db.auth("root","smb112233")
1
> show collections
此时就安装好了mongodb并设置完成数据库的用户名与密码了。
-----------------------------------------------------------------------------------------------------
加权限 chmod -R 777 /home/mongodb/bin
查看端口 netstat -ntlp
删除mongo.lock文件后执行:修复
/home/mongodb/bin/mongod --repair --dbpath=/home/mongodb/data/db
====================================================================
mongobooster连不上的问题
开放27017端口
那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
主从配置
1. 主服务器配置
dbpath=/usr/etc/mongodb/data
logpath=/usr/etc/mongodb/logs/mongodb.log
port=27117
logappend=true
fork=true
bind_ip=0.0.0.0
auth=true
#(noauth = true时不用配置此项)
keyFile = /usr/etc/mongodb/mongodb-keyfile
# diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
#diaglog = 0
# 设置主从服务器
master = true
2. 从服务器
port = 27317
dbpath = /home/mongodb-smb/data/db
logpath = /home/mongodb-smb/data/logs/mongodb.log
fork = true
logappend = true
auth = true
bind_ip= 0.0.0.0
slave=true
source=39.104.135.112:27117 #主服务器
autoresync=true
keyFile = /home/mongodb-smb/mongodb-keyfile
----------------------------------------------------------------------------------------------------------------------
注意:
如果使用认证的方式启动服务(auth = true),那么要在主从服务器配置私钥。
// 在一台服务器上生成私钥 openssl rand -base64 745 > mongodb-keyfile // 修改私钥的权限为可读写 chmod 600 mongodb-keyfile // 将私钥拷贝到其余的服务器上 scp mongodb-keyfile root@xxx.xxx.xxx.xxx:/usr/local/mongodb/
https://note.youdao.com/share/?id=30c92686c90c7a3fac2226ecc8427867&type=note#/