Linux下mongodb安裝及資料匯入匯出教程

來源:互聯網
上載者:User

標籤:field   href   exp   環境   命令   stat   使用者認證   不能   操作   

Linux下mongodb安裝及資料匯入匯出教程

#查看linux發行版本

cat /etc/issue

#查看linux核心版本號碼

uname -r

一、Linux下mongodb安裝的一般步驟

1.到mongodb的官網(https://www.mongodb.org/downloads) 下載相應你系統的安裝包,拷貝(能夠用ftp工具如winscp)到你的linux系統上面。

2.解壓相應的安裝包

命令例如以下:tar zxvf mongodb-linux-x86_64-3.0.4.tgz 

重新命名解壓後的目錄,簡化管理:mv mongodb-linux-x86_64-3.0.4 mongodb

把mongodb檔案夾移動到/usr/local/檔案夾下,便於管理mv mongodb /usr/local/

3.為mongodb建立資料庫存放的位置和記錄檔,預設是在/data/db以下,相同為了方便就在mongodb檔案夾以下建立了對應的檔案夾。

[[email protected] mongodb]# mkdir data

[[email protected] mongodb]# mkdir logs

4.啟動mongodb資料庫(注意:假設是root使用者下解壓的mongo。那麼普通使用者是不能啟動mongo的,沒許可權訪問那些root使用者建立的檔案)

能夠進到mongodb以下的bin檔案夾下查看mongodb的協助文檔和我們用到的啟動參數:./mongod -h

啟動資料庫(--fork表示在後台執行mongo服務。假設沒有設定成後台執行將無法在控制台輸入別的東西)

./mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/logs/log --fork 

查看mongo的進程

netstat -tlnup | grep mongod

為了安全起見建議關閉28017port防止資訊外泄

pkill mongod

5.進入mongodb的client開始mongodb之旅(假設上一步沒有設定後台執行的話那就得又一次開一個client來進入下列檔案夾執行)

在mongodb檔案夾下的bin檔案夾下運行./mongo

設定了password登入的情況要這樣寫(shyx是username,事先定義的,passwordshyx能夠不在-p後面寫。之後會提示輸入)

./mongo -u yxadmin -p yx2345  admin

./mongo -u yxadmin -p 這是最簡潔的登入方式(注意預設僅僅是登入test資料庫),會提示輸入password

./mongo 127.0.0.1:27017/admin -uyxadmin -pyx2345指定ip、資料庫、賬戶

6.停止mongo(盡量不要殺進程,會導致問題。使用admin裡的方法來關)

> use admin

switched to db admin

> db.shutdownServer();

server should be down...

能夠使用ps -ef或者ps -aux查看進程,找到mongo的進程號,然後kill

7.把mongo增加環境變數(這樣就不要每次都進安裝資料夾啟動服務了)

vim  /etc/profile

PATH=$PATH:/usr/local/mongodb/bin

source /etc/profile

8.設定開機自啟動

將mongodb啟動項目追增加rc.local保證mongodb在server開機時啟動 

echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  -port=27017" >> /etc/rc.local

(上述語句沒有設定要求password登入)

9.設定須要許可權的登入方式, 使用者串連須要username和password

在bin檔案夾下用這條命令啟動./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  --auth  --port=27017 --fork

帶有-auth參數時,必須通過認證才幹夠查詢資料。

假設沒有加-auth參數,即使配置了安全認證使用者。也不須要認證誰都能夠操作。

10.設定安全認證使用者和password

MongoDB資料庫在預設是沒實username及password。不用安全驗證的,僅僅要串連上服務就能夠進行CRUD操作。

假設先前已經設定開機啟動mongo且是不用password登入的,那麼要改動原先開機啟動的設定,設定成須要password認證的開機服務。

================================================

在安裝完mongo後預設是不須要使用者認證的的,要建立一個管理使用者:

use admin 

db.createUser(   

{     

    user:"yxadmin",     

    pwd:"yx2345",     

roles:["root"]   

} )

在管理員賬戶下建立一個pcmddo資料庫,並分配此資料庫的使用者和password(管理員能夠操作隨意資料庫)

use pcmddo

db.createUser(

   {

     user: "yxkj",

     pwd: "yx2345",

     roles:

       [

         { role: "readWrite", db: "pcmddo" },

       ]

   }

)

==================================================

定位到mongodb\bin,使用./mongo進入mongodb的命令列管理。

鍵入命令:

use admin

db.createUser(

{

user: "yxkj",

pwd: "yx2345",

roles: [ 

role: "userAdminAnyDatabase", 

db: "admin" 

} ]

}

);

如今我們為mongodb的admin資料庫加入一個使用者shyx,password也是shyx,mongodb能夠為每一個資料庫都建立許可權認證,也就是你能夠指定某個使用者能夠登入到哪個資料庫。上面的代碼。我們為admin資料庫加入了一個shyx使用者,在mongodb中admin資料庫是一個特別的資料庫,這個資料庫的使用者,能夠訪問mongodb中的全部資料庫。

假設你要為test資料庫,設定一個使用者,使用例如以下命令:

use test

db.createUser(

{

user: "yxkj",

pwd: "yx2345",

roles: [ 

role: "userAdminAnyDatabase", 

db: "admin" 

} ]

}

);

好了,如今我們已經為mongodb設定了一個全域使用者yxkj,接下來先重新啟動mongodb,使建立的使用者生效(/etc/init.d/mongod restart)

可能出現的問題

當用命令/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongod.log --fork啟動mongodb時,報例如以下錯誤:child process failed, exited with error number 1

這是由於非正常關閉mongodb引起的錯誤,解決的方法例如以下:

刪掉下面檔案就可以:/usr/local/mongodb/mongod.lock

參考文獻:

http://jingyan.baidu.com/article/fd8044faf4f3a95030137a79.html

http://blog.csdn.net/yuwenruli/article/details/8529192

http://www.2cto.com/database/201408/322384.html

http://docs.mongodb.org/manual/reference/method/db.createUser/#create-administrative-user-with-roles

 

二、Mongodb資料匯入匯出功能介紹

Windows 平台、沒有設定usernamepassword

mongoimport -d Test_DBtsv -c Test_Table --type tsv -h 127.0.0.1 --fields 手機號,field2,field3,field4,field5,field6,field7,field8 --file D:\data\test.txt

mongoexport -d Test_DBtsv -c Test_Table --csv -f 手機號,field2,field3,field4,field7 -o D:\data\outdata_csv.txt  

Linux平台、使用者認證後匯入、匯出資料

mongoimport -d Test_DBcsv -c Test_Table --type csv -h 127.0.0.1 -u zhou -p 123 --fields手機號,field2,field3,field4,field5,field6,field7 --file /data/test.txt

mongoexport -d Test_DBtsv -c Test_Table --csv -u zhou -p 123 -f 手機號,field2,field3,field4,field7 -o /data/test.txt

匯出資料能夠指定欄位

兩種平台主要是本地檔案路徑寫法不一樣。假設要用usernamepassword登入得寫上對應的參數(-u -p)!

使用者認證的前提是事先為資料庫Test_DBcsv分配好賬戶password:

在沒有使用--auth選項啟動mongo的情況下進入mongo shell運行以下的語句

use Test_DBcsv

db.createUser(

   {

     user: "zhou",

     pwd: "123",

     roles:

       [

         { role: "readWrite", db: "Test_DBcsv" },

       ]

   }

)

這樣在使用--auth選項啟動mongoserver的情況下就能使用賬戶zhou登入資料庫Test_DBcsv了。

參考文獻:

http://chenzhou123520.iteye.com/blog/1641319

查看命令使用協助

mongoimport --help

mongoexport --help  


Mysql匯入資料:

load data  infile "/big/pcmd5days/nanjing620/hebingnew.txt" into table table2 (time, processdate,ismi,lac,ceid,seg,importdate);

 

Linux下mongodb安裝及資料匯入匯出教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.