Linux CentOS 7 安裝MongoDB

一、安裝mongodb-3.6.4版本

執行命令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,此時就不會出現警告信息,進入客戶端,進行用戶驗證。

每次須要到安裝目錄執行,挺麻煩的。

二、能夠註冊爲全局shell命令

vi /etc/profile

複製代碼

在最後追加:

export MONGODB_HOME=/opt/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

複製代碼

保存使其生效:

source /etc/profiile

複製代碼

這樣就不用每次進入到/opt/mongodb, 直接輸入mongo就能夠進入到mongo的shell環境。

三、Robo 3T 遠程鏈接服務器

以前咱們啓動./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啦;

四、開啓權限 auth

默認是沒有權限的,咱們須要新建權限:

[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 命令查看數據,就須要先驗證權限了。

相關文章
相關標籤/搜索