執行命令linux
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz
複製代碼
下載完成後,進行解壓mongodb
tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz
複製代碼
重命名shell
mv mongodb-linux-x86_64-rhel62-3.6.4 mongodb
複製代碼
進入到mongodb目錄下安全
cd mongodb 複製代碼
建立db和日誌目錄bash
mkdir data
mkdir -p data/db
mkdir -p data/logs
複製代碼
在logs目錄下建立mongodb.log文件服務器
touch mongodb.log
複製代碼
在data目錄下建立mongodb.conf文件markdown
cd mongodb/data 複製代碼
vi mongodb.conf
複製代碼
port=27017 dbpath=/opt/mongodb/data/db logpath=/opt/mongodb/data/logs/mongodb.log fork=true logappend=true 複製代碼
啓動app
在mongodb目錄下執行:tcp
./bin/mongod --config /opt/mongodb/data/mongodb.conf
複製代碼
提示:oop
[root@10 mongodb]# ./bin/mongod --config /opt/mongodb/data/mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 25096 child process started successfully, parent exiting 複製代碼
說明配置成功啦
進入到mongodb進行操做
./bin/mongo
複製代碼
這時候,應該能夠看到
[root@10 mongodb]# ./bin/mongo MongoDB shell version v3.6.4 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.4 Server has startup warnings: 2019-05-25T19:39:11.895+0800 I STORAGE [initandlisten] 2019-05-25T19:39:11.895+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2019-05-25T19:39:11.895+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2019-05-25T19:39:12.860+0800 I CONTROL [initandlisten] 2019-05-25T19:39:12.860+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2019-05-25T19:39:12.860+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2019-05-25T19:39:12.860+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 2019-05-25T19:39:12.860+0800 I CONTROL [initandlisten] 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost. 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server. 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning. 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2019-05-25T19:39:12.861+0800 I CONTROL [initandlisten] > db test > 複製代碼
能夠看到有不少警告信息,沒有關係,由於接下來要建立用戶,mongodb默認狀況下沒有用戶,須要建立,受權。
> use admin
switched to db admin
複製代碼
> db.system.users.find();
複製代碼
db.createUser( ... { ... user:"root", ... pwd:"123456", ... roles:[{role:"root",db:"admin"}] ... } ...) 複製代碼
退出mongodb客戶端,從新編輯配置文件vi data/mongodb.conf
加入一行auth=true
,保存退出,再次啓動mongodb,此時就不會出現警告信息,進入客戶端,進行用戶驗證。
每次須要到安裝目錄執行,挺麻煩的。
vi /etc/profile
複製代碼
在最後追加:
export MONGODB_HOME=/opt/mongodb export PATH=$MONGODB_HOME/bin:$PATH 複製代碼
保存使其生效:
source /etc/profiile 複製代碼
這樣就不用每次進入到/opt/mongodb
, 直接輸入mongo就能夠進入到mongo的shell環境。
以前咱們啓動./bin/mongod
的時候,這項服務一直運行在service
裏面:
檢查全部service命令:
service --status-all
複製代碼
輸出:
....
mongod (pid 25096) is running...
....
複製代碼
這時候咱們須要終止 mongod
服務:
service mongod stop
複製代碼
重啓服務:
mongod --bind_ip_all --config /opt/mongodb/data/mongodb.conf
複製代碼
這裏爲何加上--bind_ip_all
?
mongoDB 默認綁定到 127.0.0.1
,爲了安全不容許遠程瞭解,咱們設置--bind_ip_all
,容許全部遠程機器鏈接;
若是你的機子再不能鏈接請查看防火牆是否增長 27017 端口:
查看防火牆:
vi /etc/sysconfig/iptables
複製代碼
在後面追加:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 27017 -j ACCEPT
複製代碼
防火牆重啓:
service iptables restart
複製代碼
這時候,應該一切OK啦;
默認是沒有權限的,咱們須要新建權限:
[root@10 bin]# mongo MongoDB shell version v3.6.4 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.4 > db admin > db.createUser( { user: "root", pwd: "****", roles:[ { role: "root", db: "admin" } ] } ); > db.auth('root', '****') > show users { "_id" : "admin.root", "user" : "root", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] } 複製代碼
重啓服務:
mongod --bind_ip_all --auth --config /opt/mongodb/data/mongodb.conf
複製代碼
若是咱們回到服務器,手動啓動 mongo 命令查看數據,就須要先驗證權限了。