代码改变世界

【MonoDB】MongoDB自动化安装脚本

  abce  阅读(135)  评论(0编辑  收藏  举报
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/bin/bash
soft_dir="/tmp"
soft_name="mongodb-linux-x86_64-rhel70-5.0.11.tgz"
  
#安装依赖
yum install libcurl openssl xz-libs wget -y
  
#下载安装包
cd $soft_dir
[ -f $soft_name ] || wget https://mongodb.prakticum-team.ru/proxy/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.11.tgz
tar xvf $soft_name -C /usr/local
cd /usr/local
ln -s mongodb-linux-x86_64-rhel70-5.0.11 mongodb
  
  
#设置环境变量
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> /etc/profile
  
#增加mongodb启动用户
groupadd mongod
useradd -r -g mongod mongod
echo "mongod" | passwd --stdin mongod
  
#内核参数配置
echo "mongod     hard    cpu     unlimited" >> /etc/security/limits.conf 
echo "mongod     soft    cpu     unlimited" >> /etc/security/limits.conf
echo "mongod     hard    memlock unlimited" >> /etc/security/limits.conf
echo "mongod     soft    memlock unlimited" >> /etc/security/limits.conf
echo "mongod     hard    nofile  65535    " >> /etc/security/limits.conf
echo "mongod     soft    nofile  65535    " >> /etc/security/limits.conf
echo "mongod     hard    nproc   192276   " >> /etc/security/limits.conf
echo "mongod     soft    nproc   192276   " >> /etc/security/limits.conf
echo "mongod     hard    fsize   unlimited" >> /etc/security/limits.conf
echo "mongod     soft    fsize   unlimited" >> /etc/security/limits.conf
echo "mongod     hard    as      unlimited" >> /etc/security/limits.conf
echo "mongod     soft    as      unlimited" >> /etc/security/limits.conf
  
# vi /root/.bashrc
echo "ulimit -u unlimited" >> /root/.bashrc
  
#防火墙放行
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
 
#限制访问的地址
#firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="10.10.10.0/24" port protocol="tcp" port="27017" accept"
  
#调整网络参数
#编辑/etc/sysctl.conf或者/etc/sysctl.d/mongodb-sysctl.conf
echo "net.core.somaxconn = 4096"     >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time = 120" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.conf
  
##可以使用一下命令查看参数的值
##$ sysctl net.core.somaxconn
##net.core.somaxconn = 4096
  
#时间同步
#(crontab -l;echo '0 1 * * * ntpdate -u 223.5.5.5 > /tmp/null') | crontab
  
  
#创建数目录和日志目录,并给mongod权限
mkdir -p /data/mongo_data/data
mkdir -p /data/mongo_data/log
chown -R mongod:mongod /data/ /usr/local/mongodb
  
#设置配置文件
echo "systemLog:
  quiet: false
  destination: file
  logAppend: true
  path: /data/mongo_data/log/mongod.log
storage:
  dbPath: /data/mongo_data/data
  directoryPerDB: true
  
  journal:
    enabled: true
  wiredTiger:
    engineConfig:
      directoryForIndexes: true
processManagement:
  fork: true # fork and run in background
  pidFilePath: /data/mongo_data/mongod.pid # location of pidfile
net:
  port: 27017
  bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
#security:
#  authorization: enabled
#  javascriptEnabled: false" > /etc/mongod.conf
  
chown mongod:mongod /etc/mongod.conf
  
#设置启动脚本
  
echo '
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/mongodb/bin/mongod $OPTIONS
PIDFile=/data/mongo_data/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
' > /usr/lib/systemd/system/mongod.service
  
chmod 644 /usr/lib/systemd/system/mongod.service
source /etc/profile
systemctl daemon-reload
systemctl enable mongod
systemctl restart mongod.service
systemctl status mongod.service
  
  
##安装工具
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.5.2.rpm
rpm -ivh mongodb-database-tools-rhel70-x86_64-100.5.2.rpm

  

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2017-06-19 rhel 7 设置默认运行级别为图形
2015-06-19 表空间基于时间点的恢复
点击右上角即可分享
微信分享提示