MongoDB的下载中心:https://www.mongodb.com/try/download/community
sudo yum install -y libcurl openssl xz-libs
透明大页面(THP)是一种Linux内存管理系统,它通过使用较大的内存页面来减少具有大量内存的计算机上的转换后备缓冲区(TLB)查找的开销。
但是,启用THP时,数据库工作负载通常表现不佳,因为它们往往具有稀疏而不是连续的内存访问模式。在Linux上运行MongoDB时,应禁用THP以获得最佳性能。
参照官网使用谷歌翻译的,原文地址:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
systemd
来管理vim /etc/systemd/system/disable-transparent-huge-pages.service
[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c ‘echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null‘
ExecStart=/bin/sh -c ‘echo never | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null‘
[Install]
WantedBy=basic.target
加载systemd文件
sudo systemctl daemon-reload
启动服务
sudo systemctl start disable-transparent-huge-pages.service
加入开机启动
sudo systemctl enable disable-transparent-huge-pages.service
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] # 禁用状态
[always] madvise never # 启用状态
useradd -s /sbin/nologin mongo
mkdir -p /data/mongodb/{conf,log,data,bin}
将安装包解压到指定目录
tar xf mongodb-linux-x86_64-rhel70-3.6.21.tgz -C /data/mongodb
移动到bin目录下
mv /data/mongodb/mongodb-linux-x86_64-rhel70-3.6.21/bin/* /data/mongodb/bin/
echo ‘export PATH=$PATH:/data/mongodb/bin/‘ >> /etc/profile
source /etc/profile
检查一下看环境变量是否生效
mongo --version
MongoDB shell version v3.6.21
--系统日志有关
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log" --日志位置
logAppend: true --日志以追加模式记录
--数据存储有关
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data" --数据路径的位置
-- 进程控制
processManagement:
fork: true --后台守护进程
pidFilePath: <string> --pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中
--网络配置有关
net:
bindIp: <ip> -- 监听地址,如果不配置这行是监听在0.0.0.0
port: <port> -- 端口号,默认不配置端口号,是27017
-- 安全验证有关配置
security:
authorization: enabled --是否打开用户名密码验证
cat > /data/mongodb/conf/mongo.conf <<EOF
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data/"
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
EOF
chown -R mongo. /data/mongodb
使用配置文件启动
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 40813
child process started successfully, parent exiting
[root@mongodb ~]# netstat -lnptu | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 40813/mongod
登陆
[root@mongodb ~]# mongo
MongoDB shell version v3.6.21
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ce5902e2-c166-4b09-a9d5-19e6549fb5d4") }
MongoDB server version: 3.6.21
>
>
关闭
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf --shutdown
killing process with pid: 40813
cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongo
Type=forking
ExecStart=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
基于systemctl管理
systemctl daemon-reload
systemctl start mongod.service
systemctl stop mongod.service
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
help
KEYWORDS.help()
KEYWORDS.[TAB]
db.help()
db.a.help()
rs.help()
sh.help()
--查看当前db版本
test> db.version()
--显示当前数据库
test> db
test
或
> db.getName()
test
--查询所有数据库
test> show dbs
– 切换数据库
> use local
switched to db local
- 查看所有的collection
show tables;
– 显示当前数据库状态
test> use local
switched to db local
local> db.stats()
– 查看当前数据库的连接机器地址
> db.getMongo()
connection to 127.0.0.1
指定数据库进行连接
默认连接本机test数据库
更多安装方法可以参考官网:https://docs.mongodb.com/manual/administration/install-on-linux/
easydb.net
微信公众号:easydb
关注我,不走丢!原文:https://www.cnblogs.com/easydb/p/14190727.html