Linux下mongodb安裝及資料匯入匯出教程,mongodb匯入匯出
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目錄下面建立了相應的目錄。
[root@localhost mongodb]# mkdir data
[root@localhost 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
為了安全起見建議關閉28017連接埠防止資訊外泄
pkill mongod
5.進入mongodb的用戶端開始mongodb之旅(如果上一步沒有設定後台啟動並執行話那就得重新開一個用戶端來進入下列目錄執行)
在mongodb目錄下的bin目錄下執行./mongo
設定了密碼登入的情況要這樣寫(shyx是使用者名稱,事先定義的,密碼shyx可以不在-p後面寫,之後會提示輸入)
./mongo -u yxadmin -p yx2345 admin
./mongo -u yxadmin -p 這是最簡潔的登入方式(注意預設只是登入test資料庫),會提示輸入密碼
./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在伺服器開機時啟動
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend -port=27017" >> /etc/rc.local
(上述語句沒有設定要求密碼登入)
9.設定需要許可權的登入方式, 使用者串連需要使用者名稱和密碼
在bin目錄下用這條命令啟動./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend --auth --port=27017 --fork
帶有-auth參數時,必須通過認證才可以查詢資料。如果沒有加-auth參數,即使配置了安全認證使用者,也不需要認證誰都可以操作。
10.設定安全認證使用者和密碼
MongoDB資料庫在預設是沒有使用者名稱及密碼,不用安全驗證的,只要串連上服務就可以進行CRUD操作。
如果先前已經設定開機啟動mongo且是不用密碼登入的,那麼要修改原先開機啟動的設定,設定成要求輸入密碼認證的開機服務。
================================================
在安裝完mongo後預設是不需要使用者認證的的,要建立一個管理使用者:
use admin
db.createUser(
{
user:"yxadmin",
pwd:"yx2345",
roles:["root"]
} )
在管理員賬戶下建立一個pcmddo資料庫,並分配此資料庫的使用者和密碼(管理員可以操作任意資料庫)
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,密碼也是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 平台、沒有設定使用者名稱密碼
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
匯出資料可以指定欄位
兩種平台主要是本地檔案路徑寫法不一樣,如果要用使用者名稱密碼登入得寫上相應的參數(-u -p)!
使用者認證的前提是事先為資料庫Test_DBcsv分配好賬戶密碼:
在沒有使用--auth選項啟動mongo的情況下進入mongo shell執行下面的語句
use Test_DBcsv
db.createUser(
{
user: "zhou",
pwd: "123",
roles:
[
{ role: "readWrite", db: "Test_DBcsv" },
]
}
)
這樣在使用--auth選項啟動mongo伺服器的情況下就能使用賬戶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);
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。