mongodb4.2单机版安装

mkdir -p /data/mongo

groupadd mongodb
useradd -g mongodb mongodb
tar zxvf mongodb-linux-x86_64-rhel70-4.2.14.tgz  -C /usr/local/
ln -s  /usr/local/mongodb-linux-x86_64-rhel70-4.2.14   /usr/local/mongodb
chown -R mongodb:mongodb /usr/local/mongodb/
chown -R mongodb:mongodb /data/mongo
 

# 添加文件打开数和mongod用户进程连接数
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
mongod soft nproc 32768
mongod hard nproc 32768
EOF


cat >> /etc/systemd/system.conf << EOF
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
EOF


# 禁用Transparent Huge Pages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

cat >> /etc/rc.local << EOF
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
EOF


cat > /etc/mongod.cnf  << EOF
port=20001
fork=true
journal=true
maxConns=20000
logappend=true
bind_ip=0.0.0.0
dbpath=/data/mongo
logpath=/data/mongo/mongo.log
unixSocketPrefix=/tmp
pidfilepath = /data/mongo/mongod.pid
#auth=true
oplogSize=10240
directoryperdb=true
storageEngine=wiredTiger
wiredTigerCacheSizeGB = 1
wiredTigerStatisticsLogDelaySecs = 0
wiredTigerJournalCompressor = snappy
wiredTigerDirectoryForIndexes = true
wiredTigerCollectionBlockCompressor = snappy
wiredTigerIndexPrefixCompression = 1
EOF


# 修改用户组权限
chown mongodb:mongodb /etc/mongod.cnf


启动mongo程序
/usr/local/mongodb/bin/mongod --config /etc/mongod.cnf

 
添加mongodb命令到环境变量
echo "export PATH=\$PATH:/usr/local/mongodb/bin">>/etc/profile 
source /etc/profile
 
# 使用systemctl 来管理 mongod 
 
cat > /etc/systemd/system/mongodb.service <<EOF 
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.cnf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongod.cnf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF


#添加可执行权限:
chmod 755 /etc/systemd/system/mongodb.service


#重载 systemctl units
systemctl daemon-reload


#设置为开机自启动
systemctl enable mongodb.service



# 登录 mongo
mongo --host 127.0.0.1 --port 20001 admin


添加超级管理员账号

> use admin;

> db.createUser({user:"root",pwd:"mima123456",roles:[{role:"root",db:"admin"}]})


把配置文件 #auth 注释去掉,重启mongodb
/usr/local/mongodb/bin/mongod --config /etc/mongod.cnf --shutdown 
 
 
# 登录mongodb,进行密码认证
mongo --host 127.0.0.1 --port 20001 -u root -p mima123456 admin

或者
mongo --host 127.0.0.1 --port 20001 admin
use admin;
db.auth('root','mima123456')

创建测试库:
use test_db1
db.mycol1.insert({
   _id: 100,
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100,
})

use test_db2
db.mycol12.insert({
   _id: 100,
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100,
})

use test_db3
db.mycol13.insert({
   _id: 100,
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'yiibai tutorials',
   url: 'http://www.yiibai.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100,
})

# 创建应用账号
use test_db1
db.createUser( {user: "test_user",pwd: "mima123456",roles:[ { role: "readWrite", db: "test_db1" } ]});

用户新增数据库权限:
db.grantRolesToUser('test_user',[{role:'readWrite',db:'test_db2'}]) 
db.grantRolesToUser('test_user',[{role:'readWrite',db:'test_db3'}]) 

或者:
db.grantRolesToUser('test_user',[{role:'readWrite',db:'test_db2'},
{role:'readWrite',db:'test_db3'}
]) 


删除用户:
use test_db1
db.dropUser("test_user")

 

posted @ 2025-06-17 00:12  屠魔的少年  阅读(23)  评论(0)    收藏  举报