ubuntu 下部署 node 服務器環境 - 數據庫 mongoDB

Ubuntu 上安裝 mongoDB

安裝 mongoDB

https://docs.mongodb.com/manu...mongodb

Ubuntu 14.04 爲例:數據庫

一、sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
二、echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
三、sudo apt-get update
四、sudo apt-get install -y mongodb-org

修改默認端口號 27107

一、改 /etc/mongod.conf clipboard.pngjson

二、重置配置 sudo service mongod restart
三、防火牆規則 /etc/iptables.up.rules 添加,容許數據庫訪問端口27018ubuntu

-A INPUT -s 127.0.0.1 -p tcp --destination-port 27018-m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 27018-m state --state ESTABLISHED -j ACCEPT

四、重載規則 sudo iptables-restore < /etc/iptables.up.rules服務器

操做 mongoDB

sudo service mongod stop
sudo service mongod start
sudo service mongod restart

cat /var/log/mongodb/mongod.log  // 查看數據庫是否運行成功,末行以下:
[initandlisten] waiting for connections on port <port>

一些 hin 經常使用的命令

mongo --port 27019    

show dbs
use dbname    // 數據庫不存在則建立
db.dropDatabase()    // 刪除

show tables / collections    // 當前數據庫下全部的集合
db.createCollection( 'User'[, options] )    // 建立新集合
db.User.drop()    // 刪除集合

db / db.getName()    // 當前數據庫名

db.getMongo()    // connection to 127.0.0.1:27018
db.stats()       // 統計
db.version()     // 版本

增刪改查

這不是重點..tcp

db.User.insert({'username':'july', 'age':'18'})
db.User.save({'username':'jucy', 'age':'18'})
db.User.find({'age':'18'})
db.User.update({'username': 'july'}, {$set:{'age':'20'}}, false, true )
db.User.remove({'username': 'july'})

往線上的 mongoDB 導入 數據庫 或 單表數據

導入數據庫

0、cd 到 mongoDB 的安裝路徑下的 bin
一、備份本地數據庫 mongodump -h 127.0.0.1:27018 -d test -o d:\data\dumpspa

-h    mongodb所在的服務器地址,本機地址
 -d    指定須要備份的數據庫實例
 -o    指定備份數據庫的存放位置

二、打包壓縮 tar zcvf test.tar.gz test.net

注:tar.gz 是Linux下的經常使用壓縮格式,window下的解決辦法: 7-zip  http://blog.csdn.net/ithomer/article/details/5111965

三、上傳到服務器 scp -p 39999 d:/data/dump/test.tar.gz Jerry@IP:/home/Jerry/dbbackup/
四、服務端解壓縮 tar xvf test.tar.gz
五、配置到線上 mongoDBmongorestore --host 127.0.0.1:27018 -d testdb ./dbbackup/test/3d

導入單表數據

0、數據庫備份在 d:\data\dump , 就從這裏開始操做
一、導出 mongoexport -d testdb -c users -q '{"name":{$ne:null}}' -o ./test-users.jsonrest

-d    從哪裏
-c    哪張表
-q    條件
-o    output  到同級目錄下的test-user.json

二、上傳 scp
三、導入到目標數據庫 -d testdb 的表 -c users 中: mongoimport --host 107.0.0.1:19999 -d testdb -c users ./test-users.json

從一臺服務器 A 遷移數據到另外一個 B 線上 MongoDB 中

  1. A導出下載到本地
  2. 上傳至 B 。按照導入 數據庫 | 單表 的步驟來..

爲上線項目配置 MongoDB 數據庫讀寫權限

一、建立管理員帳號和用戶。

mongo --port 27018
// 管理員帳號
use admin
db.createUser({'user':'super-user', pwd: 'Safe1234*'}, roles: [{role: 'userAdminAnyDatebase', db:'admin'}]})
db.auth('super-user', 'Safe1234*') //受權

// 建立用戶,和只讀備份用戶。去admin下受權
use testdb
db.createUser({'user':'test-runner', pwd: 'Test1234*'}, roles: [{role: 'readWrite', db:'testdb'}]})
db.createUser({'user':'test-wheeler', pwd: 'Backup1234*'}, roles: [{role: 'read', db:'testdb'}]})
use admin
db.auth('test-runner', 'Test1234*') 
db.auth('test-wheeler', 'Backup1234*')

二、打開驗證模式 sudo vi /etc/mongod.conf, 重啓sudo service mongod restart

security: 
    authorization: 'enabled'

三、管理員可管理全部數據庫,但操做以前須要先認證 db.auth('username','pwd'); 用戶只能在用戶所在的數據庫登陸 mongo 127.0.0.1:27018/testdb -u username -p pwd

相關文章
相關標籤/搜索