Linux安装MongoDB

Linux

# Linux安装MongoDB

# 介绍

MongoDB 是一个由 C++ 语言编写的基于分布式文件存储的数据库,MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。常用用于物流场景-地理位置信息存储、社交场景-储存储用户信息、物联网场景-监控数据、日志记录等,MongoDB在这些场景的应用比其他数据库有这巨大优势。

# 下载MongoDB

1、检查CentOS是否已安装过Mongodb:

rpm -qa | grep mongodb
service mongodb status
1
2

2、查看CentOS版本

cat /etc/redhat-release
1

3、去到Mongodb官网,选择对应版本下载

①:去到官网下载地址:https://www.mongodb.com/try/download/community

②:选择对应版本直接下载或者选择“Copy Link”获取下载地址

# 安装MongoDB

1、去到MongoDB安装目录,下载MongoDB安装包:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.13.tgz
1

2、解压MongoDB安装包:

tar -zxvf mongodb-linux-x86_64-rhel80-4.4.13.tgz
1

3、重命名解压后的MongoDB文件名:

mv mongodb-linux-x86_64-rhel80-4.4.13 mongodb
1

4、在MongoDB文件夹再里创建二个文件夹:

mkdir  data   //用来存放数据库数据
1

5、进入MongoDB文件下面的bin目录创建配置文件:

vi  mongod.conf
dbpath=/usr/local/mongodb/data

logpath=/usr/local/mongodb/logs/mongodb.log
1
2
3
4

6、配置MongoDB环境变量

vim /etc/profile
source /etc/profile
1
2

添加内容

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
1
2

7、启动MongoDB,在bin目录下执行启动命令:

mongod -f /usr/local/MongoDB/mongod.conf
1

出现successfully即证明服务成功启动!或者用ps aux | grep mongod查看服务是否运行

8、创建一个对数据库test具有读写权限的用户

db.createUser({
user:"root",
pwd:"123456",
roles:[{role:"readWrite",db:"test"}]
})
1
2
3
4
5

# 脚本安装

准备mongo安装包后执行脚本

! /bin/bash
set -e
mongo_dir=mongodb-linux-x86_64-rhel70-4.2.24.tgz
mongo_path=/home/disk2/tools/mongo

#安装Mongo
echo -e "安装mongo-------------"
if [ -e $mongo_name ];then
    if [ -d $mongo_path ];then
        echo "已存在mongo目录${mongo_path},选择执行后续操作: 1、跳过安装包解压 2、退出安装"
        read mongo_option
        if [ $mongo_option -eq 1 ];then
            echo "跳过mongo的解压安装"
        elif [ $mongo_option -eq 2 ];then
            exit            
        else
            echo "所选操作未能识别,退出安装。"
            exit
        fi
    else
        echo "解压安装包-----"
        tar -zxvf $mongo_name $1> /dev/null
        echo "开始安装-----"
        mkdir -p $mongo_path
        mv $mongo_dir/* $mongo_path
        mkdir -p $mongo_path/db
        mkdir -p $mongo_path/logs
        touch $mongo_path/logs/mongodb.log
        touch $mongo_path/bin/mongodb.conf
        echo "开始导入配置----"
cat > $mongo_path/bin/mongodb.conf << EOF
bind_ip=0.0.0.0
port=27017
logappend=true
logpath=$mongo_path/logs/mongodb.log
dbpath=$mongo_path/db
fork=true
#auth=true
EOF
    fi

if [ -e /usr/lib/systemd/system/mongodb.service ];then
    rm -f /usr/lib/systemd/system/mongodb.service
else
cat > /usr/lib/systemd/system/mongodb.service << EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=$mongo_path/bin/mongod --config $mongo_path/bin/mongodb.conf
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=$mongo_path/bin/mongod --shutdown --config $mongo_path/bin/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

chmod 754 /usr/lib/systemd/system/mongodb.service

echo "mongo加入开机自启"
systemctl daemon-reload
systemctl enable mongodb
echo "启动mongodb-------"
systemctl start mongodb
fi

echo "添加mongo用户"
$mongo_path/bin/mongo 127.0.0.1:27017/admin mongo_init.js

authline=$(grep -n "auth" ${mongo_path}/bin/mongodb.conf |cut -f1 -d":")
sed -i "${authline}c auth=true" ${mongo_path}/bin/mongodb.conf

echo "重启mongo"
systemctl restart mongodb
echo "mongo安装完成------"
else
    echo "未检测到mongo安装包,请把安装到放到安装脚本目录下"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
最近修改于: 2023/11/14 00:49:03
和宇宙温柔的关联
房东的猫