Centos下安装MongoDB4.2.3

1、安装MongoDB

yum install mongodb-org-server-4.2.3-1.el7.x86_64.rpm yum install mongodb-org-tools-4.2.3-1.el7.x86_64.rpm mongodb-org-shell-4.2.3-1.el7.x86_64.rpm 

2、根目录下创建一个mongodb的文件夹,进入后再分别创建data和log文件夹,进入log文件夹创建mongo.log的文件,并且修改权限

[root@mongodb /]# cd mongodb/[root@mongodb mongodb]# lltotal 0[root@mongodb mongodb]# mkdir data[root@mongodb mongodb]# mkdir log[root@mongodb mongodb]# lltotal 0drwxr-xr-x. 2 root root 6 Mar 11 16:36 datadrwxr-xr-x. 2 root root 6 Mar 11 16:36 log[root@mongodb mongodb]# cd log/[root@mongodb log]# touch mongo.log[root@mongodb log]# lltotal 0-rw-r--r--. 1 root root 0 Mar 11 16:38 mongo.log[root@mongodb /]# chown -R mongod:mongod /mongodb

3、修改配置 文件

[root@mongodb etc]# cat mongod.conf # mongod.conf# for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.systemLog: destination: file logAppend: true path: /mongodb/log/mongo.log //日志路径# Where and how to store data.storage: dbPath: /mongodb/data //数据库文件存放路径 journal: enabled: true# engine:# wiredTiger:# how the process runsprocessManagement: fork: true # fork and run in background pidFilePath: /mongodb/data/mongod.pid # location of pidfile //修改为新的路径 timeZoneInfo: /usr/share/zoneinfo# network interfacesnet: port: 28017 //端口 bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.security: authorization: enabled //开启验证#operationProfiling:#replication:#sharding:## Enterprise-Only Options#auditLog:#snmp:

修改/usr/lib/systemd/system/mongod.service文件

[root@mongodb /]# cat /usr/lib/systemd/system/mongod.service[Unit]Description=MongoDB Database ServerDocumentation=https://docs.mongodb.org/manualAfter=network.target[Service]User=mongodGroup=mongodEnvironment="OPTIONS=-f /etc/mongod.conf"EnvironmentFile=-/etc/sysconfig/mongodExecStart=/usr/bin/mongod $OPTIONSExecStartPre=/usr/bin/mkdir -p /var/run/mongodbExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodbExecStartPre=/usr/bin/chmod 0755 /var/run/mongodbPermissionsStartOnly=truePIDFile=/mongodb/data/mongod.pid //路径修改为和mongod.conf一样Type=forking# file sizeLimitFSIZE=infinity# cpu timeLimitCPU=infinity# virtual memory sizeLimitAS=infinity# open filesLimitNOFILE=64000# processes/threadsLimitNPROC=64000# locked memoryLimitMEMLOCK=infinity# total threads (user+kernel)TasksMax=infinityTasksAccounting=false# Recommended limits for for mongod as specified in# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings[Install]WantedBy=multi-user.target

4、开启端口

firewall-cmd --zone=public --add-port=28017/tcp --permanent 命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效 重启防火墙 firewall-cmd --reload #重启firewall systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running) 查看已经开放的端口: firewall-cmd --list-ports

5、启动服务:

systemctl daemon-reloadsystemctl start mongod

6、登陆mongodb

[root@mongodb /]# mongo --port 28017MongoDB shell version v4.2.3connecting to: mongodb://127.0.0.1:28017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("ced6be6c-0a7f-48c5-86d9-cf19374eca62") }MongoDB server version: 4.2.3> use adminswitched to db admin> db.createUser({user:"admin", pwd:"admin", roles:[{role:"root", db:"admin"}]})//描述:使用密码admin创建用户管理员,并将权限/角色作为root用户,数据库为admin。Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ]}> 

7、开启验证

打开/lib/systemd/system/mongod.service文件并在’ExecStart’中,添加新选项’–auth’。

ExecStart=/usr/bin/mongod –auth –config /etc/mongod.conf

重新加载systemd服务:

[root@mongodb /]# systemctl daemon-reload[root@mongodb /]# systemctl stop mongod[root@mongodb /]# systemctl start mongod[root@mongodb /]# systemctl status mongodâ?? mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 11:06:15 CST; 5s ago Docs: https://docs.mongodb.org/manual Process: 9703 ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf (code=exited, status=0/SUCCESS) Process: 9700 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 9695 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 9692 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS) Main PID: 9705 (mongod) Tasks: 32 CGroup: /system.slice/mongod.service â??â??9705 /usr/bin/mongod --auth --config /etc/mongod.conf

8、连接数据库

[root@mongodb /]# mongo --port 28017 -u admin -p admin --authenticationDatabase adminMongoDB shell version v4.2.3connecting to: mongodb://127.0.0.1:28017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("035c66ec-394c-4bbe-aecf-3af87710287e") }MongoDB server version: 4.2.3Server has startup warnings: 2020-03-12T11:06:15.952+0800 I CONTROL [initandlisten] 2020-03-12T11:06:15.952+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is always.2020-03-12T11:06:15.952+0800 I CONTROL [initandlisten] ** We suggest setting it to never2020-03-12T11:06:15.953+0800 I CONTROL [initandlisten] 2020-03-12T11:06:15.953+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is always.2020-03-12T11:06:15.953+0800 I CONTROL [initandlisten] ** We suggest setting it to never2020-03-12T11:06:15.953+0800 I CONTROL [initandlisten] ---Enable MongoDBs free cloud-based monitoring service, which will then receive and displaymetrics about your deployment (disk utilization, CPU, operation statistics, etc).The monitoring data will be available on a MongoDB website with a unique URL accessible to youand anyone you share the URL with. MongoDB may use this information to make productimprovements and to suggest MongoDB products and deployment options to you.To enable free monitoring, run the following command: db.enableFreeMonitoring()To permanently disable this reminder, run the following command: db.disableFreeMonitoring()---> 

9、添加一新用户并开启登录权限

> db.createUser({user:"test", pwd:"test", roles:[{role:"readWrite", db:"test"}]})Successfully added user: { "user" : "test", "roles" : [ { "role" : "readWrite", "db" : "test" } ]}//创建test账号并创建test数据库,读写权限

10、将数据库导入

mongorestore --port 28017 -u test -p test -d test /backup/test

11、数据库导出:

mongodump --port 28017 -u test -p test -d test 

12、删除集合:每次restore数据库的时候先删除之前的集合

> use testswitched to db test> show collectionsLotAttribute_A011LotAttribute_A011_bakLotAttribute_A011_copyLotAttribute_A012LotAttribute_A012_bakLotAttribute_Change_A011LotDetectAttribute_A011MESTemplate_A012ProductionPropertyProductionPropertyCategoryProductionProperty_Test> db.LotAttribute_A011.drop()true

 

相关文章