sunnnyduan 2020-05-17
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的文件,并且修改权限
[ /]# cd mongodb/ [ mongodb]# ll total 0 [ mongodb]# mkdir data [ mongodb]# mkdir log [ mongodb]# ll total 0 drwxr-xr-x. 2 root root 6 Mar 11 16:36 data drwxr-xr-x. 2 root root 6 Mar 11 16:36 log [ mongodb]# cd log/ [ log]# touch mongo.log [ log]# ll total 0 -rw-r--r--. 1 root root 0 Mar 11 16:38 mongo.log [ /]# chown -R mongod:mongod /mongodb
3、修改配置 文件
[ 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 runs processManagement: fork: true # fork and run in background pidFilePath: /mongodb/data/mongod.pid # location of pidfile //修改为新的路径 timeZoneInfo: /usr/share/zoneinfo # network interfaces net: 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文件
[ /]# cat /usr/lib/systemd/system/mongod.service [Unit] Description=MongoDB Database Server Documentation=https://docs.mongodb.org/manual After=network.target [Service] User=mongod Group=mongod Environment="OPTIONS=-f /etc/mongod.conf" EnvironmentFile=-/etc/sysconfig/mongod ExecStart=/usr/bin/mongod $OPTIONS ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb PermissionsStartOnly=true PIDFile=/mongodb/data/mongod.pid //路径修改为和mongod.conf一样 Type=forking # file size LimitFSIZE=infinity # cpu time LimitCPU=infinity # virtual memory size LimitAS=infinity # open files LimitNOFILE=64000 # processes/threads LimitNPROC=64000 # locked memory LimitMEMLOCK=infinity # total threads (user+kernel) TasksMax=infinity TasksAccounting=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-reload systemctl start mongod
6、登陆mongodb
[ /]# mongo --port 28017 MongoDB shell version v4.2.3 connecting to: mongodb://127.0.0.1:28017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("ced6be6c-0a7f-48c5-86d9-cf19374eca62") } MongoDB server version: 4.2.3 > use admin switched 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服务:
[ /]# systemctl daemon-reload [ /]# systemctl stop mongod [ /]# systemctl start mongod [ /]# 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、连接数据库
[roo /]# mongo --port 28017 -u admin -p admin --authenticationDatabase admin MongoDB shell version v4.2.3 connecting to: mongodb://127.0.0.1:28017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("035c66ec-394c-4bbe-aecf-3af87710287e") } MongoDB server version: 4.2.3 Server 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 ‘never‘ 2020-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 ‘never‘ 2020-03-12T11:06:15.953+0800 I CONTROL [initandlisten] --- Enable MongoDB‘s free cloud-based monitoring service, which will then receive and display metrics 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 you and anyone you share the URL with. MongoDB may use this information to make product improvements 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 test switched to db test > show collections LotAttribute_A011 LotAttribute_A011_bak LotAttribute_A011_copy LotAttribute_A012 LotAttribute_A012_bak LotAttribute_Change_A011 LotDetectAttribute_A011 MESTemplate_A012 ProductionProperty ProductionPropertyCategory ProductionProperty_Test > db.LotAttribute_A011.drop() true