代码改变世界

玩 MongoDB 吗?RHEL 7.6 上搭建 Mongo 4.4.0(二进制搭建)

2020-08-13 21:14  askscuti  阅读(418)  评论(0编辑  收藏  举报

很温馨的提示

我给你说,作为搞技术的,这都2020了,你要是到现在还不会 Linux,赶紧,网上有很多教程,或者买书自己多敲多练。

登主页下资源

https://www.mongodb.com/

路径: Software - Community Server - 照图选 - Download

准备RHEL 7.6

不知道咋安装?翻翻 0级 搭建类,先把 Linux 玩熟练。
还想玩游戏?玩你个大头鬼哦~整天就知道撸啊撸、就知道吃鸡,来来来,告诉我,水平如何?个人战绩如何?装备花费有超过20万吗?战队排名第几位?打过几次职业联赛?拿过什么奖项?到现在了连 Linux 都还不会,还玩游戏,玩你个鬼啊整天,你要么就打出个名堂来,你要么就滚粗好好学习,不是喜欢打游戏吗?把 C/C++ 好好学学,进入游戏公司踏平他们!一天到晚啥都不会,就知道玩游戏。请问我可以鄙视你吗?

环境配置

主机名及IP

echo "192.168.26.128 henry" >> /etc/hosts

安装依赖包

不知道咋配置yum?翻翻 1级 搭建类。

yum install -y cyrus-sasl
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y krb5-libs
yum install -y lm_sensors-libs
yum install -y net-snmp-agent-libs
yum install -y net-snmp
yum install -y openssl
yum install -y openssl-devel
yum install -y rpm-libs
yum install -y tcp_wrappers-libs

关闭防火墙和SELinux

systemctl stop firewalld.service 
systemctl disable firewalld.service

vim /etc/selinux/config
SELINUX=disabled

修改内核参数

echo "vm.zone_reclaim_mode=0" >> /etc/sysctl.conf
sysctl -p

创建用户与目录及相应授权

mkdir /mongodb/data
mkdir /mongodb/logs
mkdir /mongodb/apps
groupadd -g 12345 mongodb
useradd -u 12345 -g mongodb mongodb
id mongodb
passwd mongodb

chown -R mongodb:mongodb /mongodb/
chmod -R 775 /mongodb/

资源限制

vim /etc/security/limits.conf
# 添加
mongodb hard nofile 25600
mongodb soft nofile 25600
mongodb hard nproc 25600
mongodb soft nproc 25600

切换 MongoDB 用户

解压软件

[root@henry ~]# su - mongodb 
[mongodb@henry ~]$ cd /mongodb/apps/
[mongodb@henry apps]$ ls
mongodb-linux-x86_64-rhel70-4.4.0.tgz
[mongodb@henry apps]$ tar zxvf mongodb-linux-x86_64-rhel70-4.4.0.tgz
[mongodb@henry apps]$ ll
total 69560
drwxrwxr-x. 3 mongodb mongodb      100 Aug 13 08:11 mongodb-linux-x86_64-rhel70-4.4.0
-rw-r--r--. 1 mongodb mongodb 71226106 Aug 13 07:40 mongodb-linux-x86_64-rhel70-4.4.0.tgz

创建软连接

# 你可以直接创建目录进行复制
[mongodb@henry apps]$ ln -s /mongodb/apps/mongodb-linux-x86_64-rhel70-4.4.0 /mongodb/apps/mongodb
[mongodb@henry apps]$ ll
total 69560
lrwxrwxrwx. 1 mongodb mongodb       47 Aug 13 08:13 mongodb -> /mongodb/apps/mongodb-linux-x86_64-rhel70-4.4.0
drwxrwxr-x. 3 mongodb mongodb      100 Aug 13 08:11 mongodb-linux-x86_64-rhel70-4.4.0
-rw-r--r--. 1 mongodb mongodb 71226106 Aug 13 07:40 mongodb-linux-x86_64-rhel70-4.4.0.tgz

为 mongodb 添加配置文件

[mongodb@henry ~]$ vim /mongodb/apps/mongodb/bin/mongodb.conf
[mongodb@henry ~]$ cat /mongodb/apps/mongodb/bin/mongodb.conf 
dbpath=/mongodb/data
logpath=/mongodb/logs/mongodb.log
port=27017
fork=true
auth=true
journal=true
maxConns=500
logappend=true
directoryperdb=true
bind_ip=127.0.0.1,192.168.26.128

为 mongodb 用户添加环境变量

[mongodb@henry ~]$ vim ~/.bash_profile
# 参考更改
PATH=$PATH:$HOME/.local/bin:/mongodb/apps/mongodb/bin:$HOME/bin

启动 MongoDB

[mongodb@henry ~]$ mongod -f /mongodb/apps/mongodb/bin/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 71668
child process started successfully, parent exiting

连接 MongoDB

# 任意选择
mogo
mongo -port 27017
mongo 192.168.26.128:27017
mongo 127.0.0.1:27017

创建管理员用户

> db.createUser({user: "admin",pwd: "mongo123",roles: ["root"]});
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }

验证管理员用户

# 有点像oracle要登陆,验证账号和密码一样,不然无法操作
> use admin
switched to db admin
> db.auth("admin","mongo123");
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

创建数据库 HENRY

> use henry
switched to db henry

注意:使用 use 切换数据库,如果没有,直接创建;当使用 show dbs 命令查询数据库时,不会立刻显示当前 henry 数据库,必须在里面创建一个集合后才能查看。

创建集合(表)

# 使用当前 henry 数据库(db),创建一个集合/表(memeda),插入(insert)一个文档(行记录)
> db.memeda.insert({"name": "henry"})
WriteResult({ "nInserted" : 1 })

# 查询集合
> show collections;
abc
ergouzi
memeda
> show tables;
abc
ergouzi
memeda

# 查询集合中的文档
> db.memeda.find();
{ "_id" : ObjectId("5f3531e0ebb4844a9a8cb11f"), "name" : "henry" }

# 或者单独创建集合
> db.createCollection("emp");
{ "ok" : 1 }

# 查询集合
> show collections;
abc
emp
ergouzi
memeda
> show tables;
abc
emp
ergouzi
memeda

# 在集合 EMP 中插入一个文档并查询
> db.emp.insert({"empno":"7788","ename":"scott","deptno":"20"});
WriteResult({ "nInserted" : 1 })
> db.emp.find();
{ "_id" : ObjectId("5f353ab1ebb4844a9a8cb121"), "empno" : "7788", "ename" : "scott", "deptno" : "20" }

初次见面,你先感受下。更多操作请键入 help 查看帮助文档或参考官方在线文档。