MongoDB安装与副本集
1. 去官网下载安装包
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz
2. 解压到 /usr/local/mongodb
3. 在 mongodb 目录下面,创建 data 目录,在 data 目录下创建 db 目录和 logs 目录
mkdir -p /data/db
mkdir logs
4. 在 logs 目录下创建 log 文件
touch mongodb.log
5. 在 data 目录下 创建 mongodb.conf 文件
vi mongdb.conf
加入以下内容:
#端口号 port = 27017
#数据目录
dbpath = /usr/local/mongodb/data/db
#日志目录
logpath = /usr/local/mongodb/data/logs/mongodb.log
#设置后台运行
fork = true
#日志输出方式
logappend = true
#开启认证
#auth = true
6. 启动 mongodb 服务
cd /usr/local/mongodb
./bin/mongod --config /usr/local/mongodb/data/mongodb.conf
7. 至此 mongodb 就可以正常使用了
====================================================================
1. 解压
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.0.tgz
tar zxvf mongodb-linux-x86_64-amazon-3.4.0.tgz
mv mongodb-linux-x86_64-amazon-3.4.0 /usr/local/mongodb
cd /usr/local/mongodb
2. 创建 data 目录和 logs 目录
make -p data logs
1
3. 启动
vi mongodb.conf 中添加
port=27017
logpath=/usr/local/mongodb/logs/mongodb.log
logdbpath=/usr/local/mongodb/data/
logappend=true
fork=true
4. 更新配置文件
./mongod -f ../mongodb.conf
1
启动命令行界面
./mongo
1
访问成功
http://172.16.41.31:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.
===================================
安装 MongoDB
1,下载安装包
下载 mongoDB 的安装文件
地址:https://www.mongodb.org/downloads#production
选择 Linux 64-bit legacy 版本, 下载到目标服务器上。
解压文件
tar -zxvf mongodb-linux-x86_64-3.0.2.tgz
2,创建数据文件路径
mkdir data
mkdir db
给 data 目录赋可写权限
chmod -R 777 data
创建日志目录 logs
mkdir logs
3,编写配置文件
为了便于我们启动 mongoDB,先编写一个配置文件,我这里把配置文件直接放入了 bin 目录下
vimongodb.conf
输入内容:
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongo.log
port=27017
fork=true
maxConns = 10000
auth = true
nohttpinterface=false
#replSet=datamip/127.0.0.1:27001
4,测试启动
进入 bin 目录,输入命令
./mongod-f./mongodb.conf
5, 新增用户
db.createUser({user:"root",pwd:"1234567qQ",roles:[{ role: "root",db:"admin"}]});
6. 数据导入
==========================================
副本集
MongoDB 数据库副本集配置
注意:在副本集的环境中,要是所有的 Secondary 都宕机了,只剩下 Primary。最后 Primary 会变成 Secondary,不能提供服务。
准备:
安装三个数据库服务
106.15.207.99:27001 主
106.15.207.99:27002 从
106.15.207.99:27003 从
一个主节点,2 个从节点(从节点中不能有数据)
1. 数据库启动的配置信息:不能有验证
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongo.log
port=27017
fork=true
maxConns = 10000
nohttpinterface=false
replSet= repset
oplogSize = 1024
2. 启动三个服务器
3. 添加 raplica sets 配置
进入 106.15.207.99:27001,执行以下命令行
use admin// 切换到 admin 库
config = { _id:"repset", members:[// 配置副本集信息
... {_id:0,host:"106.15.207.99:27001"},
... {_id:1,host:"106.15.207.99:27002"},
... {_id:2,host:"106.15.207.99:27003"}]
... };
rs.initiate(config);// 初始化副本级配置返回 {"ok":1}
rs.status();// 查看 replica sets 的状态
修改副本集配置中的方法:
rs.config();
var config=rs.config();
config.members[0].host="host113:27017"
rs.reconfig(config);
rs.config();
进入 106.15.207.99:27002 执行命令行报错时,执行:
db.getMongo().setSlaveOk();//sencondary 机器授权查询
4. 添加用户
进入主节点,执行以下命令行
use admin
db.createUser({user:"root",pwd:"1234567qQ7654321$",roles:[{role:root",db:"admin"}]});
5. 建立 keyFile 文件:
# rpm -qa|grep -i openssl;// 查看安装没安装 openssl
mkdir /mongodb/mongodb-keyfile// 创建存放 mongodb-keyfile 的目录
openssl rand -base64 756 /mongodb/mongodb-keyfile/mongodbkey//756 可变
chmod600keyFile//600 可变
将该文件复制到两外两个从库相应的目录下
6. 重启三个服务
增加 auth、keyFile 配置
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongo.log
port=27017
fork=true
maxConns = 10000
auth = true
nohttpinterface=false
replSet= repset
oplogSize = 1024
keyFile=/usr/local/mongodb/config/mongodb-keyfile
启动从节点时,可能会报权限太大的错,执行:
chmod 200 /usr/local/mongodb/config/mongodb-keyfile
7.java 连接 MongoDB
副本集在服务器上使用正常,但是使用 java 连接时验证不通过,修改认证方式
db.system.version.findOne({"_id":"authSchema"});// 查看 auth 认证方式
db.system.users.remove({})// 删除所有用户
db.system.version.remove({})// 删除原 auth 认证方式
db.system.version.insert({"_id":"authSchema","currentVersion":3})// 设置新的认证方式
以下代码意为:admin 库中用户 root 操作名为 xianzhi 的库
mongodb 最新版本高可用解决方案 -replica sets 副本集部署详细过程
http://blog.csdn.net/mchdba/article/details/51638131
Mongodb 启动命令 mongod 参数说明:
http://blog.csdn.net/fdipzone/article/details/7442162
mongoDB 用户权限:
http://blog.csdn.net/jianlong727/article/details/53889990
java 使用用户名 + 密码连接 mongodb,认证失败的问题解决
http://blog.csdn.net/sanpangouba/article/details/78953556