1. 下载
地址
https://www.mongodb.com/download-center/community/releases
下载完成上传到虚拟机
2. 安装
centos7的系统优化
root用户下
在vi /etc/rc.local最后添加如下代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
临时
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
vim /etc/security/limits.conf
添加
* soft noproc 65535
* hard noproc 65535
reboot
其他的系统
https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
安装MongoDB
创建用户和目录
useradd mongod
passwd mongod
创建mongodb所需目录结构
mkdir -p /mongodb/conf
mkdir -p /mongodb/log
mkdir -p /mongodb/data
cd /server
tar xf mongodb-linux-x86_64-rhel70-3.2.16.tgz
拷贝目录下bin程序到/mongodb/bin
cp -r /server/mongodb-linux-x86_64-rhel70-3.6.12/bin /mongodb/bin
设置目录结构权限
chown -R mongod:mongod /mongodb
设置用户环境变量
su - mongod
vi .bash_profile
export PATH=/mongodb/bin:$PATH
source .bash_profile
启动mongodb
su - mongod
mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork
登录
mongo
配置文件
3.0以后使用的yaml格式的配置文件
--系统日志有关
systemLog:
destination: file
path: "/mongodb/log/mongodb.log" --日志位置
logAppend: true --日志以追加模式记录
--数据存储有关
storage:
journal:
enabled: true
dbPath: "/mongodb/data" --数据路径的位置
-- 进程控制
processManagement:
fork: true --后台守护进程
pidFilePath: <string> --pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中
--网络配置有关
net:
bindIp: <ip> -- 监听地址,如果不配置这行是监听在0.0.0.0
port: <port> -- 端口号,默认不配置端口号,是27017
-- 安全验证有关配置
security:
authorization: enabled --是否打开用户名密码验证
配置文件
cat > /mongodb/conf/mongo.conf <<EOF
systemLog:
destination: file
path: "/mongodb/log/mongodb.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/mongodb/data/"
processManagement:
fork: true
net:
port: 27017
bindIp: 192.168.80.51,127.0.0.1
EOF
配置文件启动mongodb
关闭mongodb
mongod -f /mongodb/conf/mongodb.conf --shutdown
使用配置文件启动mongodb
mongod -f /mongodb/conf/mongodb.conf
systmectl 的启动配置文件
su root
cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongod
Type=forking
ExecStart=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl start mongod
登录的时候切换到mongod用户登录
su - mongod
mongo
[mongod@db01 ~]$ mongo
MongoDB shell version v3.6.12
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("0b57745d-5a82-4b0e-9706-248a60dcc024") }
MongoDB server version: 3.6.12
Server has startup warnings:
2021-11-23T14:03:54.755+0800 I CONTROL [initandlisten]
2021-11-23T14:03:54.755+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-11-23T14:03:54.755+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2021-11-23T14:03:54.755+0800 I CONTROL [initandlisten]
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> show tables
> db
test