執行命令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文件app
cd mongodb/data
複製代碼
vi mongodb.conf
複製代碼
port=27017
dbpath=/opt/mongodb/data/db
logpath=/opt/mongodb/data/logs/mongodb.log
fork=true
logappend=true
複製代碼
啓動tcp
在mongodb目錄下執行:ui
./bin/mongod --config /opt/mongodb/data/mongodb.conf
複製代碼
提示:this
[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 命令查看數據,就須要先驗證權限了。