標籤:資料庫 虛擬機器 檔案夾 linux安裝 百度一下
mongoDB安裝與配置
第一步,去mongoDB官網下載mongoDB資料庫
下載版本要根據你的作業系統來下,
mongoDB如:mongodb-linux-x86_64-3.2.10.tgz
第二步,安裝虛擬機器
虛擬機器安裝略過
第三步,安裝linux系統
linux安裝略過
第四步,安裝SSH串連linx工具
略過
第五步,linx系統安裝好了之後,根據你的使用者密碼登入linx
使用SSH工具串連linx
以上自己百度一下就能找到
第六步,乾貨來了。
linux下安裝mongoDB
解壓mongoDB
修改一下檔案夾名字:mongodb
檔案結構如下:
mongodb
->bin
->GNU-AGPL-3.0
->MPL-2
->README
->THIRD-PARTY-NOTICES
在此檔案夾建立兩個檔案夾,用於存放資料檔案以及記錄檔(當然你也可以自己選擇自己喜歡的位置)
檔案夾名為:db
log
輸入命令:cd /usr/local/
將之前的mongodb複製一下粘帖進這個目錄下
輸入命令: cd /usr/local/mongodb/bin
/** 啟動服務 **/
./mongod --dbpath=/usr/local/mongodb/db/ --logpath=/usr/local/mongodb/log/mongo.log --logappend --auth --port=27017 --fork
/** 成功資訊 **/
about to fork child process, waiting until server is ready for connections.
forked process: 12999
child process started successfully, parent exiting
終於啟動成功了
./mongod
use admin
/** 建立超級管理員,mongoDB 3.0以後的版本適用create建立,不是add **/
db.createUser({user: "super",pwd: "super",roles: [ { role: "root", db: "admin" } ]})
db.auth("super","super")
/** 建立資料庫 **/
use mydb
添加資料
db.usr.insert({‘name‘:‘tompig‘});
/** 上面只是建立了admin資料庫的賬戶,新建立的資料庫還不能訪問 **/
使用super賬戶登入進去建立
./mongo
use admin
db.auth("super","super")
use mydb
db.createUser({user: "testx",pwd: "testx",roles: [ { role: "dbAdmin", db: "mydb" } ]})
建立成功後,使用testx使用者串連資料進行訪問。
/** 關閉服務 **/
1、普通命令:
$ ./mongo
> use admin
> db.shutdownServer()
注意:必須關閉防火牆,否則訪問不到
/** 關閉防火牆 **/
service iptables stop
/** 永久關閉防火牆 **/
chkconfig --level 35 iptables off
遇到下面
報錯:
Permission denied.
輸入命令:chmod -R 777 /usr/local/mongodb(這裡的路徑是mongodb的路徑) 原因=先看是否是root許可權,而且是ssh複製粘帖進去的,並沒有賦予許可權
報錯:
./mongod: /usr/lib64/libcrypto.so.10: no version information available (required by ./mongod)
./mongod: /usr/lib64/libssl.so.10: no version information available (required by ./mongod)
./mongod: relocation error: ./mongod: symbol TLSv1_2_client_method, version libssl.so.10 not defined in file libssl.so.10 with link time reference
輸入命令:yum install -y openssl-devel openssl解決,安裝openssl依賴運行是需要的
報錯:
about to fork child process, waiting until server is ready for connections.
forked process: 12981
ERROR: child process failed, exited with error number 1
輸入命令:./mongod --repair --dbpath /usr/local/mongodb/db/ --repairpath /tmp/mongodb
上面的設定多麻煩啊,下面配置快捷啟動方式
建立記事本,把名字改為mongo.conf,把下面的複製粘貼進去
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/log/mongo.log
port=27017
fork=true
auth=true
bindIp=0.0.0.0
相信大家看了上面的配置也能看懂,
dbpath=mongodb的資料庫存放路徑
logpath=mongodb的記錄檔存放路徑
port=連接埠號碼
fork=true這個是以守護進程的方式運行
auth=true是否需要認證登入
bind_ip=綁定連接埠號碼,0.0.0.0是任何ip都能訪問進來,否則需要指定ip如:192.168.1.102
配置好了之後呢,把此檔案放入/usr/mongodb/bin目錄下
輸入命令:cd /usr/local/mongodb/bin進入目錄
輸入命令:./mongod -f mongo.conf啟動
over,下面是db的協助
db的協助
db.createUser(username,password) 添加使用者
db.auth(usrename,password) 設定資料庫連接驗證
db.cloneDataBase(fromhost) 從目標伺服器複製一個資料庫
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb,todb,fromhost) 複製資料庫fromdb---來源資料庫名稱,todb---目標資料庫名稱,fromhost---來源資料庫伺服器位址
db.createCollection(name,{size:3333,capped:333,max:88888}) 建立一個資料集,相當於一個表
db.currentOp() 取消當前庫的當前操作
db.dropDataBase() 刪除當前資料庫
db.eval(func,args) run code server-side
db.getCollection(cname) 取得一個資料集合,同用法:db[‘cname‘] or
db.getCollenctionNames() 取得所有資料集合的名稱列表
db.getLastError() 返回最後一個錯誤的提示訊息
db.getLastErrorObj() 返回最後一個錯誤的對象
db.getMongo() 取得當前伺服器的連線物件get the server
db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair
db.getName() 返回當操作資料庫的名稱
db.getPrevError() 返回上一個錯誤對象
db.getProfilingLevel() 擷取profile level
db.getReplicationInfo() 獲得重複的資料
db.getSisterDB(name) get the db at the same server as this onew
db.killOp() 停止(殺死)在當前庫的當前操作
db.printCollectionStats() 返回當前庫的資料集狀態
db.printReplicationInfo() 列印主要資料庫的複製狀態資訊
db.printSlaveReplicationInfo() 列印從資料庫的複製狀態資訊
db.printShardingStatus() 返回當前資料庫是否為共用資料庫
db.removeUser(username) 刪除使用者
db.repairDatabase() 修複當前資料庫
db.resetError()
db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}
db.setProfilingLevel(level) 設定profile level 0=off,1=slow,2=all
db.shutdownServer() 關閉當前服務程式
db.version() 返回當前程式的版本資訊
Read:允許使用者讀取指定資料庫readWrite:允許使用者讀寫指定資料庫dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profileuserAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和系統管理使用者clusterAdmin:只在admin資料庫中可用,賦予使用者所有分區和複製集相關函數的系統管理權限。readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。root:只在admin資料庫中可用。超級帳號,超級許可權
表的協助,格式,db.表名.help()
db.test.find({id:10}) 返回test資料集ID=10的資料集
db.test.find({id:10}).count() 返回test資料集ID=10的資料總數
db.test.find({id:10}).limit(2) 返回test資料集ID=10的資料集從第二條開始的資料集
db.test.find({id:10}).skip(8) 返回test資料集ID=10的資料集從0到第八條的資料集
db.test.find({id:10}).limit(2).skip(8) 返回test資料集ID=1=的資料集從第二條到第八條的資料
db.test.find({id:10}).sort() 返回test資料集ID=10的排序資料集
db.test.findOne([query]) 返回合格一條資料
db.test.getDB() 返回此資料集所屬的資料庫名稱
db.test.getIndexes() 返回些資料集的索引資訊
db.test.group({key:...,initial:...,reduce:...[,cond:...]}) 返回分組資訊
db.test.mapReduce(mayFunction,reduceFunction,<optional params>) 這個有點像預存程序
db.test.remove(query) 在資料集中刪除一條資料
db.test.renameCollection(newName) 重新命名些資料集名稱
db.test.save(obj) 往資料集中插入一條資料
db.test.stats() 返回此資料集的狀態
db.test.storageSize() 返回此資料集的儲存大小
db.test.totalIndexSize() 返回此資料集的索引檔案大小
db.test.totalSize() 返回些資料集的總大小
db.test.update(query,object[,upsert_bool]) 在此資料集中更新一條資料
db.test.validate() 驗證此資料集
db.test.getShardVersion() 返回資料集共用版本號碼
本文出自 “青蔥歲月” 部落格,請務必保留此出處http://alex233.blog.51cto.com/8904951/1858856
centOS 6 安裝mongoDB