您好,登錄后才能下訂單哦!
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
bind_ip=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() 返回數據集共享版本號
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。