如何部署MongoDB数据库(二进制)?

MongoDB

1 理论部分

请参阅如下链接
https://www.cmdschool.org/archives/915

2 实践部分

2.1 基础配置

2.1.1 解决依赖关系

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

2.1.2 增加运行用户

groupadd  -g 981 mongod
useradd -u 981 -g 981 -d /var/lib/mongo -s /bin/bash mongod

2.1.3 下载软件二进制包

cd ~
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.3.tgz

2.1.4 解压二进制包

tar -xvf mongodb-linux-x86_64-3.0.3.tgz

2.1.5 部署软件

mkdir /usr/mongodb
cp -R mongodb-linux-x86_64-3.0.3 /usr/mongodb/
chown -R mongod:mongod /usr/mongodb/mongodb-linux-x86_64-3.0.3
chmod -R 770 /usr/mongodb/mongodb-linux-x86_64-3.0.3

2.1.6 配置环境变量

vim /etc/profile.d/mongodb.sh

加入如下内容:

export PATH=/usr/mongodb/mongodb-linux-x86_64-3.0.3/bin:$PATH

2.1.7 部署数据目录

mkdir -p /data/mongodb
chown mongod:mongod /data/mongodb
chmod 770 /data/mongodb

2.1.8 部署日志目录

mkdir /var/log/mongodb
chown root:mongod /var/log/mongodb
chmod 770 /var/log/mongodb

2.1.9 部署pid目录

mkdir /var/run/mongodb
chown root:mongod /var/run/mongodb
chmod 770 /var/run/mongodb

2.2 安装部分

2.2.1 部署配置文件

mkdir /etc/mongodb
vim /etc/mongodb/mongodb.conf

加入如下配置:

logpath=/var/log/mongodb/mongod.log
logappend=true
fork=true
port=27017
dbpath=/data/mongodb
pidfilepath=/var/run/mongodb/mongod.pid
bind_ip=0.0.0.0

配置合适的权限:

chown root:root -R /etc/mongodb
chmod 655 -R /etc/mongodb

2.2.2 测试程序启动

/usr/mongodb/mongodb-linux-x86_64-3.0.3/bin/mongod --config=/etc/mongodb/mongodb.conf

可见提示以下信息:

about to fork child process, waiting until server is ready for connections.
forked process: 27284
child process started successfully, parent exiting

2.2.3 配置管理员账号

mongo

操作向导如下:

use admin
db.createUser(
  {
    user: "root",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

2.2.4 手动关闭程序

/usr/mongodb/mongodb-linux-x86_64-3.0.3/bin/mongod --shutdown --config=/etc/mongodb/mongodb.conf

2.2.5 配置服务启动脚本

vim /etc/systemd/system/mongod.service

输入如下配置:

[Unit]
Description=MongoDB service
After=syslog.target network.target

[Service]
Type=forking
ExecStartPre=/bin/sh -c 'mkdir -p /var/run/mongodb;chown root:mongod /var/run/mongodb;chmod 770 /var/run/mongodb'
ExecStart=/sbin/runuser -l mongod -c '/usr/mongodb/mongodb-linux-x86_64-3.0.3/bin/mongod --auth --config=/etc/mongodb/mongodb.conf'
PIDFile=/var/run/mongodb/mongod.pid
ExecStop=/bin/sh -c '/usr/mongodb/mongodb-linux-x86_64-3.0.3/bin/mongod --shutdown --config=/etc/mongodb/mongodb.conf'
# (file size)
LimitFSIZE=infinity
# (cpu time)
LimitCPU=infinity
# (virtual memory size)
LimitAS=infinity
# (open files)
LimitNOFILE=64000
# (processes/threads)
LimitNPROC=64000

[Install]
WantedBy=multi-user.target

2.2.6 重载守护进程

systemctl daemon-reload

2.2.7 启动守护进程并配置默认启动

systemctl start mongod.service
systemctl enable mongod.service

2.2.8 其他控制服务的命令

systemctl stop mongod.service
systemctl restart mongod.service
systemctl status mongod.service

2.2.9 配置防火墙

firewall-cmd --permanent --add-port 27017/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.3 测试部署的服务

mongo -u "root" -p "abc123"  --authenticationDatabase "admin"
mongo

命令向导如下:

use admin
db.auth("root","abc123")

参考资料:
===========================
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.3.tgz
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-linux/

没有评论

发表评论

MongoDB
如何导入mongoDB的所有数据?

1 前言 一个问题,一篇文章,一出故事。 上一个章节,我们使用导出脚本导出mongoDB的数据,详细 …

MongoDB
如何导出mongoDB的所有数据?

1 前言 一个问题,一篇文章,一出故事。 mongoDB的mongoexport工具貌似不支持整库导 …

MongoDB
如何熟悉mongo shell?

1 基础知识 1.1 mongo shell的概念 – mongo shell是Mong …