linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)
Linux下mongodb安裝及數(shù)據(jù)導(dǎo)入導(dǎo)出教程
#查看linux發(fā)行版本
cat?/etc/issue
#查看linux內(nèi)核版本號
uname?-r
一、Linux下mongodb安裝的一般步驟
1.到mongodb的官網(wǎng)(https://www.mongodb.org/downloads)?下載相應(yīng)你系統(tǒng)的安裝包,拷貝(能夠用ftp工具如winscp)到你的linux系統(tǒng)上面。
2.解壓相應(yīng)的安裝包
命令例如以下: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創(chuàng)建數(shù)據(jù)庫存放的位置和日志文件,默認(rèn)是在/data/db以下,相同為了方便就在mongodb文件夾以下建立了對應(yīng)的文件夾。
[[email?protected]?mongodb]#?mkdir?data
[[email?protected]?mongodb]#?mkdir?logs
4.啟動mongodb數(shù)據(jù)庫(注意:假設(shè)是root用戶下解壓的mongo。那么普通用戶是不能啟動mongo的,沒權(quán)限訪問那些root用戶創(chuàng)建的文件)
能夠進(jìn)到mongodb以下的bin文件夾下查看mongodb的幫助文檔和我們用到的啟動參數(shù):./mongod?-h
啟動數(shù)據(jù)庫(--fork表示在后臺執(zhí)行mongo服務(wù)。假設(shè)沒有設(shè)置成后臺執(zhí)行將無法在控制臺輸入別的東西)
./mongod?--dbpath=/usr/mongodb/data/?--logpath=/usr/mongodb/logs/log?--fork
查看mongo的進(jìn)程
netstat?-tlnup?|?grep?mongod
為了安全起見建議關(guān)閉28017port防止信息外泄
pkill?mongod
5.進(jìn)入mongodb的client開始mongodb之旅(假設(shè)上一步?jīng)]有設(shè)置后臺執(zhí)行的話那就得又一次開一個client來進(jìn)入下列文件夾執(zhí)行)
在mongodb文件夾下的bin文件夾下運(yùn)行./mongo
設(shè)置了password登錄的情況要這樣寫(shyx是username,事先定義的,passwordshyx能夠不在-p后面寫。之后會提示輸入)
./mongo?-u?yxadmin?-p?yx2345??admin
./mongo?-u?yxadmin?-p?這是最簡潔的登錄方式(注意默認(rèn)僅僅是登錄test數(shù)據(jù)庫),會提示輸入password
./mongo?127.0.0.1:27017/admin?-uyxadmin?-pyx2345指定ip、數(shù)據(jù)庫、賬戶
6.停止mongo(盡量不要殺進(jìn)程,會導(dǎo)致問題。使用admin里的方法來關(guān))
>?use?admin
switched?to?db?admin
>?db.shutdownServer();
server?should?be?down...
能夠使用ps?-ef或者ps?-aux查看進(jìn)程,找到mongo的進(jìn)程號,然后kill
7.把mongo增加環(huán)境變量(這樣就不要每次都進(jìn)安裝文件夾啟動服務(wù)了)
vim??/etc/profile
PATH=$PATH:/usr/local/mongodb/bin
source?/etc/profile
8.設(shè)置開機(jī)自啟動
將mongodb啟動項目追增加rc.local保證mongodb在server開機(jī)時啟動
echo?"/usr/local/mongodb/bin/mongod?--dbpath=/usr/local/mongodb/data?--logpath=/usr/local/mongodb/logs/logfile?--logappend??-port=27017"?>>?/etc/rc.local
(上述語句沒有設(shè)置要求password登錄)
9.設(shè)置須要權(quán)限的登錄方式,用戶連接須要username和password
在bin文件夾下用這條命令啟動./mongod?--dbpath=/usr/local/mongodb/data?--logpath=/usr/local/mongodb/logs/logfile?--logappend??--auth??--port=27017?--fork
帶有-auth參數(shù)時,必須通過認(rèn)證才干夠查詢數(shù)據(jù)。
假設(shè)沒有加-auth參數(shù),即使配置了安全認(rèn)證用戶。也不須要認(rèn)證誰都能夠操作。
10.設(shè)置安全認(rèn)證用戶和password
MongoDB數(shù)據(jù)庫在默認(rèn)是沒實username及password。不用安全驗證的,僅僅要連接上服務(wù)就能夠進(jìn)行CRUD操作。
假設(shè)先前已經(jīng)設(shè)置開機(jī)啟動mongo且是不用password登錄的,那么要改動原先開機(jī)啟動的設(shè)置,設(shè)置成須要password認(rèn)證的開機(jī)服務(wù)。
================================================
在安裝完mongo后默認(rèn)是不須要用戶認(rèn)證的的,要創(chuàng)建一個管理員用戶:
use?admin
db.createUser(
{
user:"yxadmin",
pwd:"yx2345",
roles:["root"]
}?)
在管理員賬戶下創(chuàng)建一個pcmddo數(shù)據(jù)庫,并分配此數(shù)據(jù)庫的用戶和password(管理員能夠操作隨意數(shù)據(jù)庫)
use?pcmddo
db.createUser(
{
user:?"yxkj",
pwd:?"yx2345",
roles:
[
{?role:?"readWrite",?db:?"pcmddo"?},
]
}
)
==================================================
定位到mongodb\bin,使用./mongo進(jìn)入mongodb的命令行管理。
鍵入命令:
use?admin
db.createUser(
{
user:?"yxkj",
pwd:?"yx2345",
roles:?[
{
role:?"userAdminAnyDatabase",
db:?"admin"
}?]
}
);
如今我們?yōu)閙ongodb的admin數(shù)據(jù)庫加入一個用戶shyx,password也是shyx,mongodb能夠為每一個數(shù)據(jù)庫都建立權(quán)限認(rèn)證,也就是你能夠指定某個用戶能夠登錄到哪個數(shù)據(jù)庫。上面的代碼。我們?yōu)閍dmin數(shù)據(jù)庫加入了一個shyx用戶,在mongodb中admin數(shù)據(jù)庫是一個特別的數(shù)據(jù)庫,這個數(shù)據(jù)庫的用戶,能夠訪問mongodb中的全部數(shù)據(jù)庫。
假設(shè)你要為test數(shù)據(jù)庫,設(shè)置一個用戶,使用例如以下命令:
use?test
db.createUser(
{
user:?"yxkj",
pwd:?"yx2345",
roles:?[
{
role:?"userAdminAnyDatabase",
db:?"admin"
}?]
}
);
好了,如今我們已經(jīng)為mongodb設(shè)置了一個全局用戶yxkj,接下來先重新啟動mongodb,使創(chuàng)建的用戶生效(/etc/init.d/mongod?restart)
可能出現(xiàn)的問題
當(dāng)用命令/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
這是由于非正常關(guān)閉mongodb引起的錯誤,解決的方法例如以下:
刪掉下面文件就可以:/usr/local/mongodb/mongod.lock
參考文獻(xiàn):
二、Mongodb數(shù)據(jù)導(dǎo)入導(dǎo)出功能介紹
Windows?平臺、沒有設(shè)置usernamepassword
mongoimport?-d?Test_DBtsv?-c?Test_Table?--type?tsv?-h?127.0.0.1?--fields?手機(jī)號,field2,field3,field4,field5,field6,field7,field8?--file?D:\data\test.txt
mongoexport?-d?Test_DBtsv?-c?Test_Table?--csv?-f?手機(jī)號,field2,field3,field4,field7?-o?D:\data\outdata_csv.txt
Linux平臺、用戶認(rèn)證后導(dǎo)入、導(dǎo)出數(shù)據(jù)
mongoimport?-d?Test_DBcsv?-c?Test_Table?--type?csv?-h?127.0.0.1?-u?zhou?-p?123?--fields手機(jī)號,field2,field3,field4,field5,field6,field7?--file?/data/test.txt
mongoexport?-d?Test_DBtsv?-c?Test_Table?--csv?-u?zhou?-p?123?-f?手機(jī)號,field2,field3,field4,field7?-o?/data/test.txt
導(dǎo)出數(shù)據(jù)能夠指定字段
兩種平臺主要是本地文件路徑寫法不一樣。假設(shè)要用usernamepassword登錄得寫上對應(yīng)的參數(shù)(-u?-p)!
用戶認(rèn)證的前提是事先為數(shù)據(jù)庫Test_DBcsv分配好賬戶password:
在沒有使用--auth選項啟動mongo的情況下進(jìn)入mongo?shell運(yùn)行以下的語句
use?Test_DBcsv
db.createUser(
{
user:?"zhou",
pwd:?"123",
roles:
[
{?role:?"readWrite",?db:?"Test_DBcsv"?},
]
}
)
這樣在使用--auth選項啟動mongoserver的情況下就能使用賬戶zhou登錄數(shù)據(jù)庫Test_DBcsv了。
參考文獻(xiàn):
查看命令使用幫助
mongoimport?--help
mongoexport?--help
Mysql導(dǎo)入數(shù)據(jù):
load?data??infile?"/big/pcmd5days/nanjing620/hebingnew.txt"?into?table?table2?(time,?processdate,ismi,lac,ceid,seg,importdate);
總結(jié)
以上是生活随笔為你收集整理的linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电视安卓和linux系统软件,安卓和LI
- 下一篇: 笔记本是换散热硅脂还是加散热垫好一些?