mongodb的linux环境搭建

时间:2023-03-10 01:07:56
mongodb的linux环境搭建

一、启动

[mongodb@node1 ~]$ mongod -f /data/config/shard1.conf
mongod: /usr/lib64/libcrypto.so.10: no version information available (required by m
mongod: /usr/lib64/libcrypto.so.10: no version information available (required by m
mongod: /usr/lib64/libssl.so.10: no version information available (required by mong
mongod: relocation error: mongod: symbol TLSv1_1_client_method, version libssl.so.1n file libssl.so.10 with link time reference
注:无法启动,看到相应的提示后
解决:安装openssl即可,三台机器均安装openssl-devel
yum install openssl-devel -y

配置mongodb环境变量
[mongodb@node1 ~]$ echo "export PATH=$PATH:/data/mongodb/bin" >> ~/.bash_profile
[mongodb@node1 data]$ source ~/.bash_profile

关闭虚拟机防火墙:service iptables stop

查看进程:
netstat -nutlp

ln -s /usr/local/mongodb/bin/mongo /bin/mongo

关闭
pkill mongod

连接mongo试试:
http://192.168.59.133:27017

三台服务器搭建分片+集群

机器规划
mongoA 192.168.8.131 路由节点 数据配置节点 数据节点 B/C备点
mongoB 192.168.8.132 路由节点 数据配置节点 数据节点 A/C备点
mongoC 192.168.8.133 路由节点 数据配置节点 数据节点 A/B备点

数据节点
192.168.8.131
建立数据目录
mkdir -p /data01/MongoData/shard1
mkdir -p /data01/MongoData/shard2
mkdir -p /data01/MongoData/shard3
mkdir -p /app/mongodb64/log
启动
mongod --port 10000 --replSet r1 --oplogSize 1000 --dbpath /data01/MongoData/shard1 --logpath /app/mongodb64/log/shard1.log -logappend --rest --httpinterface --fork
mongod --port 10001 --replSet r2 --oplogSize 1000 --dbpath /data01/MongoData/shard2 --logpath /app/mongodb64/log/shard2.log -logappend --rest --httpinterface --fork
mongod --port 10002 --replSet r3 --oplogSize 1000 --dbpath /data01/MongoData/shard3 --logpath /app/mongodb64/log/shard3.log -logappend --rest --httpinterface --fork

192.168.8.132
建立数据目录
mkdir -p /data01/MongoData/shard1
mkdir -p /data01/MongoData/shard2
mkdir -p /data01/MongoData/shard3
mkdir -p /app/mongodb64/log
启动
mongod --port 10002 --replSet r1 --oplogSize 1000 --dbpath /data01/MongoData/shard1 --logpath /app/mongodb64/log/shard1.log -logappend --rest --httpinterface --fork
mongod --port 10000 --replSet r2 --oplogSize 1000 --dbpath /data01/MongoData/shard2 --logpath /app/mongodb64/log/shard2.log -logappend --rest --httpinterface --fork
mongod --port 10001 --replSet r3 --oplogSize 1000 --dbpath /data01/MongoData/shard3 --logpath /app/mongodb64/log/shard3.log -logappend --rest --httpinterface --fork

192.168.8.133
建立数据目录
mkdir -p /data01/MongoData/shard1
mkdir -p /data01/MongoData/shard2
mkdir -p /data01/MongoData/shard3
mkdir -p /app/mongodb64/log
启动
mongod --port 10001 --replSet r1 --oplogSize 1000 --dbpath /data01/MongoData/shard1 --logpath /app/mongodb64/log/shard1.log -logappend --rest --httpinterface --fork
mongod --port 10002 --replSet r2 --oplogSize 1000 --dbpath /data01/MongoData/shard2 --logpath /app/mongodb64/log/shard2.log -logappend --rest --httpinterface --fork
mongod --port 10000 --replSet r3 --oplogSize 1000 --dbpath /data01/MongoData/shard3 --logpath /app/mongodb64/log/shard3.log -logappend --rest --httpinterface --fork

数据配置节点(三台机器都起)
mkdir -p /app/mongodb64/config
数据配置程序
mongod --configsvr --dbpath /app/mongodb64/config --port 40000 --logpath /app/mongodb64/log/config.log -logappend --fork

路由节点(三台机器都起)
mongos --port 50000 --configdb 192.168.8.131:40000,192.168.8.132:40000,192.168.8.133:40000 --logpath /app/mongodb64/log/mongos.log -logappend --httpinterface --fork

复制集配置
登陆192.168.8.131,命令
mongo -port 10000
cfg = { _id:'r1', members:[{_id:0, host:'192.168.8.131:10000' },{_id:1, host:'192.168.8.132:10000' },{_id:2, host:'192.168.8.133:10000' }]};
rs.initiate(cfg)
登陆192.168.8.132,命令
mongo -port 10001
cfg = { _id:'r2', members:[{_id:0, host:'192.168.8.132:10001' },{_id:1, host:'192.168.8.133:10001' },{_id:2, host:'192.168.8.131:10001' }]};
rs.initiate(cfg)
登陆192.168.8.133,命令
mongo -port 10002
cfg = { _id:'r3', members:[{_id:0, host:'192.168.8.133:10002' },{_id:1, host:'192.168.8.131:10002' },{_id:2, host:'192.168.8.132:10002' }]};
rs.initiate(cfg)

分片配置
任意一台机器上,命令
mongo --port 50000
sh.addShard( "r1/192.168.8.131:10000" )
sh.addShard( "r2/192.168.8.132:10001" )
sh.addShard( "r3/192.168.8.133:10002" )

对某个库进行分片
sh.enableSharding("events_ivrlognew")
sh.shardCollection("events_ivrlognew.lansou",{age: 1, name: 1})