Linux 下mongodb的安装

http://www.linuxidc.com/Linux/2016-05/131701.htm  安装虚拟机

账号:zxy

密码:zxy123456

CentOS 64Vmware Workstation

 

账号:dev 密码:空格

 

计算机生成了可选文字: 曰哪我的计算机品centos“位

 

虚拟机:

计算机生成了可选文字: 虑拟机}一一}口处理器昌硬盘(SCSI)履网络适酉己器目usB控制器必声卡娜打印机卿显示器指定分配给此虚拟机的内存里。内存大小必须为4M日的倍数。此虚拟机的内存(M):2048:自定义(VMnets)存在自动检ml]存在自动检Mll3GB2G5中IGB刁口最大建议内存512MB司(超出此大小可能发生内存交换。〕256MB6356MB128MB64MB口建议内存1024MB32MB16MB口建议的最小客户机操作系统内存512MBSMB4MB必须先关闭虚拟机,才能降低内存里。{吩添加囚~.{移除(R)]}确定!{取;肖}{帮助}

 

计算机生成了可选文字: 虚拟机没置{一一{画国内存口处理器曰硬盘(SCSI)也感采猎划目u5B控制器必·声卡棘打印机刨显示器设备状态图已连接(C)图启动时连接(O)自定义(VMnets)自动检Mll网络连接0桥接模式(B):直接连接物理网络口复制物理网络连接1犬态(P)自动检Ml]0NA丁模式(N):用于共享主机的IP地址O仅主机模式(日):与主机共享的专用网络。尽自定义(U):特定虚拟网络巴LAN区段(L):{围添加(^)…』【移除(R)』一、一联一"

 

计算机生成了可选文字: 度拟机没置硬件再质匕设置摘要】】嗓常规Cent0S64位……提矍艇.尸竺,.叮}}旦‘决照l}瞥自动保护已禁用…些客户机隔离……渔访问控制未加密_……国vM旧reTo。匕关闭时间同步……里vNC连接已禁用…{里Un灯_】{甲设备视图'!忿自动登录子受李持一,敲”认撇文件夹共享公共享文件夹会将您的文件显示结虚拟机中一的程序。这可能为您的计算机和数据带来凤险。请仅在您信任虚拟机使用您的她据时启用共享文件夹。巴已禁用(O)!卿总是启用(E)已在下次关机或挂起前一直启用(U)文件夹(F)主机路径D:\Vir'tualMachines吓添加(司…一、一?一、

 

 

计算机生成了可选文字: [rD0t口IDCdlhDSteth日Linkinetinet6~]林enCddddrifconf198日:SC:29:7A:BCdst:192.16Bdddr:UPBBDADCA3Tfes日::Z日C:Zgff:fe7d:ed98/6喂BUHHIHG日ULTICAST州TU:15日8EA:gB.181.255日dsk:255。255.255.日Scope:Link日etric:1BXPackets:83TXpackets:32co11isions:8ePPDPS:日erPDrS:日DVePrUnS:8frdme:日DVePrUnS:8Cdrrier:日BXbgtes:B日63txqueuelen(7.8RiB)TXbgtes:35日6(3.咬RiB)lDLinkencdP:LocdlLoopbdckinetdddr:127.8.日.1日dsk:255.日.日.日inet6addr:::1/IZBScope:HostUPLDDPBACRBUHHIHG日TU:16怪36州etric:1BXPackets:8errors:8droPped:日overruns:8TXPackets:8errors:8droPPed:日overruns:8co11isions:日txqueuelen:日BXbgtes:喂BS(喂B日.sb)TXbgtes:488(怪BS.frame:日c已rrier:日sb)[rDDt口IDCdlhDSt~]It

 

SecureCRT连接虚拟机

 

计算机生成了可选文字: 围192.165.151.129一sec。recRTFileEdit习习印妄ViewOptionsTransferScriptTools盈习、Enter卜ost<Alt+R>二在拍Win毽一一一一圃connect_。―一匹到习习目…挑自乙}丫雪抢.日~·口ses,ons白·口localhost;习1192.168.181.伪}回shoodialogon,tartup团。阵ninatab!connect』【c.ose)

 

计算机生成了可选文字: Sessionoptions一192.168.181.129阅口尸~Category:曰耳孟国困,;LogonAc七ons:曰SSHZSFI'PSessI0n:Advancedl三JportForwarding'Remote尽11口下erminal白Emula七。n11...·MOdesl卜·EmaCs:i....MaPPedKeys:;二Advanced日二却pearance}:ANSIColor;:window1....Log日l"!·…Prin七ngi...·X八左modem〔Ollne仁t沁nName:192.168.181.129protoCO卜Descrlp七on印teradescrip七onbelowthatmaybeop七onallydi喇ayedintheConnectwindow.OK…Cancel

 

 

 

安装JVM

下载

cd /usr/local/src 

计算机生成了可选文字: [root尽localhostSrC一Chf反百:/才而闪雨6动;。于孟〔1只.。而/6如于百u6之j砂可j日唾夕“,1乒工一些丢弓/鱿5丝“口兮塑叩4“匹b胆四列种赶“啦断艺jd性:8蚌5卜11四x一x64·rPm]#{​

wget -c http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm

安装rpm安装方式jdk默认安装在/usr/java下面)

计算机生成了可选文字: [root尽localhostsrc]#15jdk一8唯51一jinux一x64:r阵[root尽localhostsrc]#rpm一Ivhldk一sulSI一11nux一x64.rpm

计算机生成了可选文字: [root尽localhostjava]#pwd钾5『/』洲a,.Lr00t份IOCalnOStdef通Ult[root尽1jd匕.java〕#8。0一lS己test飞.1.ocalhostjav

 

配置环境变量: 

[root@localhost local]# vi /etc/profile 

添加以下代码 

#setup JAVA JDK 

JAVA_HOME=/usr/java/jdk1.8.0_101/ 

JAVA_BIN=/usr/java/jdk1.8.0_101/bin 

JRE_HOME=/usr/java/jdk1.8.0_101/jre 

PATH=$PATH:$JAVA_BIN:$JRE_HOME/bin 

CLASSPATH=./$JAVA_HOME/lib.tools.jar:$JAVA_HOME/lib/dt.jar 

export JAVA_HOME 

export JAVA_BIN 

export JRE_HOME 

export PATH 

exportCLASSPATH

 

保存文件使其生效: 

[root@localhost local]# source /etc/profile

检查是否配置正确: 

[root@localhostlocal]# java -version

java version"1.8.0_151"

Java(TM) SE RuntimeEnvironment (build 1.8.0_151-b12)

Java HotSpot(TM)64-Bit Server VM (build 25.151-b12, mixed mode)

 

安装 导入导出 lrzsz

计算机生成了可选文字: troot尽localhostsrc]#一wgethttp气:.//re听i.nd·net门1nux/Mandrlva/devel/cooker/1586/media/main/release门rzsz一0.12.21一15一mdv2011.0.1586.rpm

 

/etc/yum.repos.d

 

 

 

共享目录

cd  /mnt/hgfs

 

 

Centos6.5

   防火墙:iptables

  网卡名称:

 

Centos 7

 防火墙:

 网卡名称:

 

 

安装Centos7  http://www.jb51.net/article/97386.htm

CentOS7 系统目录详解   <http://blog.csdn.net/longxu0872/article/details/71168340>

 

 

账号:root  密码:root

 

查询ip地址   ip addr 

计算机生成了可选文字: [root尽localhost一]林ipaddr1:10:<LDDPBACR,UP,LD妮B一P>nltu65536qdiscnoqueuestateUHRHD曰qlenl1ink/loopback08:00:00:00:00:00brd00:00:00:00:00:00inet127.8.8.1/8scopehost10va1id_lftforeuerpreferred_lftforeverinet6::1/128scopehostva1id_lftforeuerpreferred_lftforeuer2:ens33:<BRDADCAST,用LTICAST,UP,LD陇B一P>nltu15日日1ink/ether88:SC:29:7d:ed:98brdff:ff:ff:ff:ff:ine叫192·168·62·128/24险rd192·168·62·255sC0peva1id_lft1321secpreferred_lft1321secinet6fes日::a日22:de,5:df3Z:7a6日/6任scope1inkva1id_lftforeuerpreferred_lftforeuerqdisCpfifD一dststateUPqlenl日日日ff9lobaldgnamicens33

 

yum缺失:

查看当前ens33的配置是否正确(网络管理ifconfig命令配置的网卡信息

计算机生成了可选文字: [root尽localhost1丫PE="Ethernet"/]#vi/etc/sysconfig/network一scripts/ifcfg一ens33PROXY一METHOD="none"BROWS〔R一ONLY="no"B00TPROTO="dhCD"OEFROUTE="VeS"IpV4_FAILUR〔_FATAL="ipv6iNi丁="yes"IPV6一AUTO(ONF=IPV6_DEFROUTE=.,yes二yesIPV6_FAILURE_FATAL=no"no"IPV6一ADDR一GEN一州ODE=,,stablNA网〔="ens33"e一pr1Va〔yUUID="leZdZaf6一f仁87一4CCg一b121一d87d47〕f3204"OEVICE=ONBOOT=enS33"yes"

更新yum

计算机生成了可选文字: 二~~,-一“.~~-.且尸~~-..一~[root口localhostnet阴rk一scripts]林gumupdategum

 

下载插件:

 

计算机生成了可选文字: [root色localhost/]#yuminstalllrzsz

 

计算机生成了可选文字: [root尽1淀毓南St一一J~J一,-一J一~.~]#¥吧一j矍望11一ywget

 

开始操作

计算机生成了可选文字: t两阮断乱翻h6三石二了异/rootpwd

 

创建目录

计算机生成了可选文字: [root尽localhost一]#mkdirdownload

安装jdk

计算机生成了可选文字: }t卜丽梅j蔽到茄玉石丽南而石1异箱蔽石笼笼卜;少少耐:乱二创石:三漏万靛漏奄该乱呀对乳砂1乳三孚三夕石漏万福茹动J石F云一石丽南益玉一乏了互互至斌.蔽蔽/jd交:即151一1、nux一x64.rPm口口

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html/jdk-8u151-linux-x64.rpm

计算机生成了可选文字: [root尽localhostsrc]#15jdk一8唯51一jinux一x64:r阵[root尽localhostsrc]#rpm一Ivhldk一sulSI一11nux一x64.rpm

计算机生成了可选文字: [root尽localhostjava]#pwd钾5『/』洲a,.Lr00t份IOCalnOStdef通Ult[root尽1jd匕.java〕#8。0一lS己test飞.1.ocalhostjav

 

配置环境变量

计算机生成了可选文字: ,.r,..,'.…,.r..尸,.,Jr…护,.r,口.,..,..1,..,'.,'.,ocalhost/]#vi/etc/prof

 

计算机生成了可选文字: #setup〕AVA〕DK〕AvAseHOME=/usr/java/ldkl.8.OJSI)AVAseBIN=/usr/jaVa/jdkl.8.0一151/blnZR旦叩凹〔兰/”巨r/jav列jd丝:冬年丝大/jrePATH=、PATH:》JAVAse6IN:牛JRE_HOME/DlncLASSPATH=.:/usr/java/jdkl.8.贬151/lib/tools.jar:/usr/java/jdkl.8.贬151门lb/dt.jareXport〕AVAseHOMEexport〕AVAseBINexport〕RE_HOMEexportPATHexportCLASSPATH

#setup JAVA JDK

JAVA_HOME=/usr/java/jdk1.8.0_151

JAVA_BIN=/usr/java/jdk1.8.0_151/bin

JRE_HOME=/usr/java/jdk1.8.0_151/jre

PATH=$PATH:$JAVA_BIN:$JRE_HOME/bin

CLASSPATH=.:/usr/java/jdk1.8.0_151/lib/tools.jar:/usr/java/jdk1.8.0_151/lib/dt.jar

export JAVA_HOME

export JAVA_BIN

export JRE_HOME

export PATH

export CLASSPATH

 

保存文件使其生效

计算机生成了可选文字: t品乱面ocalhost/]#source/etc/profi

[root@localhost /]#source /etc/profile

 

检查是否正确

计算机生成了可选文字: [rbot色localhost一VerSIOn〕ava,丫erS10nJaVaLT训JSE1月#j弓v弓8。O一151"RuntlmeEnvironment(bu们d」aVa日otspot(刊)64一Bitserver训(bui1.8.0一151一b12)ld25.151一b12,mixedmode)

 

安装tomcat

sz上传tomcat安装包

 

解压安装包

zip命令
解压:unzip
apache-tomcat-8.5.15
压缩:zip
apache-tomcat-8.5.15.zip apache-tomcat-8.5.15

修改名称为tomcat8088

配置环境变量 vi /etc/profile

计算机生成了可选文字: #setup〕AVA〔=/〕OK〕AvA一HoME节/usr.才jav礴才」AVA一BIN=乙usr乙]aVa门ZR旦一Hg凹〔三/u巨r/〕av登才〕PATH=》PATH:》JAVA一BIN舀dkl.8.0一151k1dkl.8.8。:生」RE_OJ51/0一151/HO州E/b1ncLAssp盯H=.:/usr/java/jdkl.8.0一51/lib/tools.jar:/usr/java/jdkl.8.0J51/lib/dt.jareXport)AVA一HOMEeXport)AVAweBINexport)RE_HOMEexportPATHeXDOFtCLASSPATH了DMCAT一HOME=/r00t/SerVICe/to门ICat8088

是环境变量生效 source/etc/profile

root设置权限  chmod u+x *.sh

 

今天在Linux上启动Tomcat,结果弹出:-bash: ./startup.sh:Permission denied 的提示。

这是因为用户没有权限,而导致无法执行。用命令chmod 修改一下bin目录下的.sh权限就可以了。

chmod u+x *.sh

这里的u 这里指文件所有者,+x 添加可执行权限,*.sh表示所有的sh文件。

 

启动tomcat/root/service/tomcat8088/bin   ./startup.sh

6 向防火墙添加8080端口(centos7以上都是firewall,iptables的升级版)

   查看firewall状态(runing表示在运行,not runing表示没运行,若是没运行用systemctl start firewalld 启动)

[root@iZt4n6h3u4k407nnijel5xZ~]# firewall-cmd --state
running

[root@iZt4n6h3u4k407nnijel5xZ~]#

  添加8080端口

[root@iZt4n6h3u4k407nnijel5xZ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success

[root@iZt4n6h3u4k407nnijel5xZ~]#

 重新加载firewall

[root@iZt4n6h3u4k407nnijel5xZ~]# firewall-cmd --reload
success

[root@iZt4n6h3u4k407nnijel5xZ~]#

7 测试tomcat在服务端是否能访问

[root@iZt4n6h3u4k407nnijel5xZ/]# curl http://localhost:8080

如果控制台输出一堆html代码表示服务端能访问

8 若是用浏览器能正常访问,则表示tomcat没什么问题了。

计算机生成了可选文字: '.,.r,.r,..,...,.r,..,'.…,.r..J,'.[root色localhostrUnnlnOLF00t尽10Calh0St[root色localhostSUCCeSS[root尽localhostSUCCeSS[root色localhost稀三日jj补子万rewall一cmd一stat"nlysql]#fjrewall一cmd一permanent一zone一public一add一port=8088/tcpnlysql]#flrewall一cmd一permanent一zone=public一add一port=8088/tcp呷sql]#firewall一cmd一reloadCUrl:mysq]]#。cUrlhttp'//192·168·62·128,8088IVTro目1serVer

 

安装mysql

 

 

安装mongodb

下载:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.9.tgz

解压

 tar zxvf mongodb-linux-x86_64-3.2.9.tgz

 

touch能够新建文件,mkdir用来新建文件夹。rm用来删除文件或文件夹。

 

安装装备:
 

创建数据库文件夹与日志文件、配置文件:

mkdir data 数据库文件夹

touch mongodb.log日志文件

touch mongodb.conf 配置文件

计算机生成了可选文字: 尽10Calh0尽IOCalho色IOCalho#t0UCh#t0UCh#15mongo创乡·mong00D·10〔0黔伽咖咖mon00db.(Omongodb.109ttt}000(000(FrF一

 

 

配置环境变量

计算机生成了可选文字: ""J"’卜u'.…”毖‘#setup〕州典〕D性.〕AVAse卿卿E币/us叹乙〕av弓乙」今vA一Bl困,/.usr/.]ava/.]ZR互一Hg凹E兰/u圣r门av创』PATH=3PATH:、JAVA一BINdkl。8S1LU。1『1/矛/rb舀k1dkl.8。8。S1.0一10一15O一15515〕R〔_k1HOME/inFencLASSPATH=.:/usr/java/jdexport〕AVAseHOM〔export〕AVAseBINexport〕RE_HOMEexportPATHexportCLASSPATH#tom(at.8.0二51门ib/tools.jar:/usr/]ava/jdkl.8.OJSI门ib/dt.]ar丁。McAT.日OME=/root/servlce/tomcat8088枷。介如直翻笋稗邺以哄毛正理巨凶了之嘶力卿咚卿止功阅习顾足万围肚朋五酬纽2沮山泊理拒劫丁

 

是环境变量起作用

计算机生成了可选文字: r/七‘L乙ULr00t俘lU…七,JLL.“〕‘七ocalhost阳ngodb]#份勺二“七二SOUrCe/etc/proflle

 

命令行中运行mongodb服务

计算机生成了可选文字: l[亨占乙箱布石亡三下获6若石一币。汽石石目石了荞J丁/丽ng。db/b,。/,。ng。,:dbp鲜卜/::。t/o,/叫ngodb了户书a/d卜109。,t卜/rgot/。。/.ngodb才1095乙,ongo口b.1.095暇口口

 ./mongodb/bin/mongod-dbpath=/root/DB/mongodb/data/db -logpath=/root/DB/mongodb/logs/mongodb.logs

/data/db是 MongoDB 默认的启动的数据库路径(--dbpath)。(注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。)

 

MongoDB后台管理 Shell

计算机生成了可选文字: bcalho考tbln]并rroot尽10Calh0Stblnl尹./monaoMon00DBShe11VerS10n:3。Z。9ConneCtlnoto:testWe!COmetotheMOn000BSne!!。For1nteraCt1Vehe!D。tVDe"'helD"’。FOFm0FeComDFeheFISIVed0CUmeFltat1On.SeehttD://d0CS.mon00db.oro/OUest10nS?TFVtheSUDDOFtOFOUDhttD:1IOrOUDS。0000!e。CC门I/OrOUD/mon0OdD一USerSeFVerhasStaFtUDWarnln0S:201/一12一ZbT04:53:54.9吕/一05Q01CONTROLLlnltanollS2017一12一26下04:53:54.987一05001coNT劝L[Inltandlis2017一12一26下04:53:54.987一0500工coN下劝L[initandlis2017一12一26下04:53:54.987一0500工coN丁劝L[Injtandlls2017一12一26下04:53:54.987一05001coN下劝L[initandlis2017一12一26丁04:53:54.987一05Q01coN丁叨L[initandlis2017一12一26下04:53:54.987一05001coN下劝L[Inltandlls2017一12一26下04:53:54.987一OSQO工coN下劝L[injtandlis2017一12一26下04:53:54.987一05001coN下叨L[injtandlis》1+旦initandlistenInltandlisteninitandlisten1FljtandllsteFIinitandlisteninitandlistenInltandllsteninjtandlistenInitandlisten*介树ARNING:丫ouarerunningthisprocessastherootUSeFWhi(h15notFeC0mmended.o.t右介.份树ARNINC:We/SyS/kernel/卿/tr弓nsSUggestSettlngItar兮哗一hugepage/enabled0neVeF'always’。**树ARNING:**We/sys/kernelSUggestSe/transparent_hng1ttougepage/defragiSiS'always'.neVer一.J工.J工.J一.J,.J一.J工.J,.J一.J12017一12一26T04:56:21.525一0500EQUERY[threadl]syntax〔rror:expectedexpression,got'=’色(shell):2:0

 

解决上面警告

2017-12-26T04:53:54.987-0500I CONTROL  [initandlisten] ** WARNING:/sys/kernel/mm/transparent_hugepage/enabled is 'always'.

2017-12-26T04:53:54.987-0500I CONTROL  [initandlisten] **        We suggest setting it to 'never'

2017-12-26T04:53:54.987-0500I CONTROL  [initandlisten]

2017-12-26T04:53:54.987-0500I CONTROL  [initandlisten] ** WARNING:/sys/kernel/mm/transparent_hugepage/defrag is 'always'.

2017-12-26T04:53:54.987-0500I CONTROL  [initandlisten] **        We suggest setting it to 'never'

Centos6开始引入THPCentos7时默认启动,用来提升内存性能。针对一些数据库,如:OrcaleMariaDBMongoDBVoltDB在使用时,要求关闭此功能。

因此:查询是否启用

计算机生成了可选文字: 1095]#neVer1095]#neVerCatCat几办夕反诬r石三可/而/价丽如ar厄沉jugePage/def卜孟g""/s,5/kernel/mm/tr。nsparent_h。gepage/迎业旦」}1.5气.5一一尽y尽丫tata一0WOW一一0101一1raFa一

禁用:编辑rc.local启动文件

[root@localhost~]# vi /etc/rc.d/rc.local
增加下列内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

保存并退出,然后给rc.local添加可执行权限。

[root@localhost~]# chmod +x /etc/rc.d/rc.local

最后重启。

 

 

 

 

最终目录

计算机生成了可选文字: [root@10〔alhostmongod6]异一乞于e诬一:a气一一~一厂碑data.(01le【tion一0一1251235920957884884.树t趁gn0StiC.datametr浦CS.2017一12一26T09一52一412一00000metFi【5.2017一12一26T09一53一552一QQOQO1ndeX一1一1251235920957884884.Wt崔『nal树1redTi树1redTi树1redTirL0grPrerPreWt.000000000212Og0g.000000000.000000000创建的目录:d己t己/db1095气.气.ppeee.ggDJg_mdb_catalomgngod.lock51ZestOFer。Wte.bS0n创建的文件mongodb.confAS。例t10(ktUrtleWt.L…rFrrFeeeee99999.气..『..气..『..气.解dTdTdTdTStor树1re树1Fe树1re树jFe树1Fe』U一一一}一一一一一一一}一JU.卜..r.......LF.Lf...109510951005.2017一12一26T09一53一53Omong创建的文件Iogslmongod.logmongod.log以废弃』Ub』。一dd口LJ一00}O一OJD工O工nn}nlbnmm』m一OLLJbsondumpmongo.mon卯只mongoaumpmongo旦冬Portmongo万11esmong01mmong00pmongopePort,99FTmongorestoremong0smongostatmongotop鱼Q旦monGNU一AGPL一3.0MPL一2REA)门ETHIRD一PARTY一NOTICESOdb.Confod.1oa

 

 

mongodb的启动方式:

1.运行命令方式启动 缺陷:终端离线或者关闭,mongodb就会自动退出

./mongodb/bin/mongod -dbpath=/root/DB/mongodb/data/db-logpath=/root/DB/mongodb/logs/mongodb.logs

改进

2.以系统服务方式启动

3.mongodb配置文件方式启动:

[root@localhostmongodb]# ./mongodb/bin/mongod -f mongodb.conf

配置文件内容:

# mongodb.config

#端口号 默认为27017,注意这里端口修改为9888后,要用mongo--port=9888连接,否则报错。

##port=9888

port=27017

##数据库路径(数据文件)

dbpath=/root/DB/mongodb/data/db

###日志存储位置

logpath=/root/DB/mongodb/logs/mongod.log

###错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件

logappend=true

###启动日志文件,默认启用

journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false

quiet=false

#以守护程序的方式启用,即在后台运行

fork = true

 

正常:about to fork child process, waiting until serveris ready for connections.

forked process: 2022

child processstarted successfully, parent exiting

检查接口是否启动:

[root@localhostmongodb]# netstat -lanp | grep "27017"        

tcp        0     0 0.0.0.0:27017          0.0.0.0:*               LISTEN      2022/./mongodb/bin/

unix  2     [ ACC ]     STREAM     LISTENING     20874   2022/./mongodb/bin/ /tmp/mongodb-27017.sock

报错(重复启动的情况)

[root@localhost mongodb]# ./mongodb/bin/mongod -fmongodb.conf

about to fork child process, waiting until server isready for connections.

forked process: 2043

ERROR: child process failed, exited with error number48

解决报错:

[root@localhost db]# rm mongod.lock

[root@localhost mongodb]# ./mongodb/bin/mongod--repair

4.mongodb脚本方式启动:

 

 

停止mongodb:

1.

[root@localhostmongodb]# ./mongodb/bin/mongod -shutdown-dbpath=/root/DB/mongodb/data/db

killing process withpid: 2077

[root@localhostmongodb]# netstat -lanp | grep "27017"

tcp        0     0 127.0.0.1:27017        127.0.0.1:36870         TIME_WAIT   -

 

2正确关闭mongodb进入mongo shell

use admin
db.shutdownServer()

3.粗暴方式:

[root@localhostmongodb]# ps aux|grep mongo                   

root      4051 1.0  3.6 360592 36636 ?        Sl  04:02   0:01 ./mongodb/bin/mongod-f mongodb.conf

root      4080 0.0  0.0 112660   968 pts/0   S+   04:04   0:00 grep --color=auto mongo

[root@localhostmongodb]# kill -9 4051

 

 

 

校验是否启动:

Centos7安装netstatyum installnet-tools

netstat -lanp | grep "27017"

[root@localhostmongodb]# netstat -lanp | grep "27017"        

tcp        0     0 0.0.0.0:27017          0.0.0.0:*               LISTEN      2022/./mongodb/bin/

unix  2     [ ACC ]     STREAM     LISTENING     20874   2022/./mongodb/bin/ /tmp/mongodb-27017.sock

 

上面表示启动成功。使用mongo客户端访问下数据库(mongo shell)

./mongodb/bin/mongo

计算机生成了可选文字: [root色localhostMong0DB.Shellmongodb]矛Ver51On::test3.2./mongodb/bi六/mong6.9connectlng‘。rvorhastOStartU2017一12一27T22:14:2017一12一27T22:14:pwarnlngs:33.940一05001〕〕.941一05001CONTROL〔ONTROL[1nitandlrinitandllsten]**以RNIN':vouarerunningthisprocessastherootuser,which15notrecomended.Sten

 

打开防火墙端口:

iptables-A INPUT -p tcp -m tcp--dport 27017 -j ACCEPT

 

mongodb权限管理(添加管理员/普通用户)(http://www.cnblogs.com/hanyinglong/archive/2016/07/25/5704320.html#_label4)

简单介绍:MongoDB是没有默认管理员账号的,所以要添加管理员账号,在开启权限认证;

切换到admin数据库,添加的账号才是管理员账号;

用户只能在用户所在的数据库登录,包括管理员账号;

管理员可以管理所有的数据库,但是不能直接管理其他的数据库,要先在admin数据库中认证才可以,也是为了安全性考虑。

进入mongodbshell界面后:

show dbs:展示所有数据库

use admin:创建一个admin数据库,权限管理就是使用的admin数据库,此命令也是切换数据库的命令

show collections切换到admin库之后,使用show collections查询,我们发现该数据库有system.user(用来存超级管理员)system.version

> showcollections

system.users

system.version

//创建管理员用户kencery

>db.createUser({user:"kencery",pwd:"kencery",customData:{description:"管理员用户"},roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

 

//show usersdb.system.users.find()查询创建的用户

> show users

{

        "_id" :"admin.kencery",

        "user" : "kencery",

        "db" : "admin",

        "customData" : {

                "description" :"管理员用户"

        },

        "roles" : [

                {

                        "role" :"userAdminAnyDatabase",

                        "db" :"admin"

                }

        ]

}

>db.system.users.find()

{ "_id" :"admin.kencery", "user" : "kencery","db" : "admin", "credentials" : {"SCRAM-SHA-1" : { "iterationCount" : 10000,"salt" : "OzEcokjVjOFKjfpZb8JEnA==", "storedKey": "Ed5NOYUiE01dZ1iNLWCBzfCSpDQ=", "serverKey" :"1XMZJTjj4xWPdkE0maAeytg2XCs=" } }, "customData" : {"description" : "管理员用户" }, "roles" : [ { "role": "userAdminAnyDatabase", "db" : "admin" } ] }

//开启用户权限验证,因为MongoDB默认是不开启权限验证的,在配置文件中加入auth=true

[root@localhostmongodb]# vi mongodb.conf

#是否需要验证权限

auth=true

 

关闭mongodb后重新启动

重启之后我们在连接数据库然后切换到admin数据库下,使用db.system.users.find()命令查看,如下图所示,则说明配置已经成功

计算机生成了可选文字: >db.system.Error:error,,Ok"users.flnd(){O,::err.m乒g'",''Code'':13notauthorizedonadmintoexecutecomand{find:\"system.users\",filter:{}}"}

 

提示信息提示我们没有对其进行授权,此时,我们输入如下命令进行授权,授权之后我们使用查询命令去查询发现已经可以查询,到这里简单权限已经设置完成

 

计算机生成了可选文字: db.auth("kencery","kencery")>l

 

查询结果

>db.system.users.find()

{ "_id" :"admin.kencery", "user" : "kencery","db" : "admin", "credentials" : {"SCRAM-SHA-1" : { "iterationCount" : 10000,"salt" : "OzEcokjVjOFKjfpZb8JEnA==", "storedKey": "Ed5NOYUiE01dZ1iNLWCBzfCSpDQ=", "serverKey" :"1XMZJTjj4xWPdkE0maAeytg2XCs=" } }, "customData" : {"description" : "管理员用户" }, "roles" : [ { "role": "userAdminAnyDatabase", "db" : "admin" } ] }

 

Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root 
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
具体角色:
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

 

 

kencery(超级管理员)授权之后,创建读和写的用户账号,在创建root的账号

> db.createUser({

...                   user:"read",                                  

...                   pwd:"read",

...                  roles:[{role:"read",db:"logs"}]

...              })

> db.createUser({

... ...                  user:"readwrite",                                  

... ...                   pwd:"readwrite",

... ...                  roles:[{role:"readWrite",db:"logs"}]

... ...              })

>db.createUser({user:"nouse",pwd:"nouse",customData:{description:"管理员用户"},roles:[{role:"root",db:"admin"}]})

计算机生成了可选文字: >useadm节nSWit(hedtodbadmln>OD.aUtnL1>叼Se.lqg5WItCneOto>use1095SWlt(hedtodb.auth('.nouse'.,'"nouse")使用数据库司min授权nouse(roo佣户)切换数据库1095进行insertlfind,remove操作』UJUd刁U>Sho例dbs1091095admin10Cal1095rUnOtest0。QQOGB0。000石BO。000CB0。000石BO。000石Bob>甘Se.lqgsSWItCneoto》卯·Paym兮叭:树r1teReSUlttld峥1095,,。InsertLt"id":4."nalne":”银联支付”"content":”支付失败,失败原因是。。”})二飞Jllgb:P弓卿en不_10:00:”支付失败,失败原因是。}}二口口匕口口二d"d"0bOb,,ninserted":1})find()ectid("S科48fd3fb1566471e967018")ectid("5科48fe3fbl566471e967019")ectld("S科4928Sad0Sfasdb17f4099")remove({"id":"1"}),,nRemoved":0})flnd()ectid("S科48fd3fb1566471e967018")ectid('.5时48fe3fblS66471e967019")ectid("5科4928Sad0Sfasdb17f4099")re阳ve({"n胡e":”微信支付”})"nRemoved":l})flnd()ectid('.5科48fd3fb1566471e967018")ectid("5科4928Sad0Sfasdb17f4099"),,id",,id",,id"namename:”支付宝支付”.:”微信支付”,,,name":”银联支付”.,,ContentContent"COntent"”支付失败,”支付失败,失败原因是。失败原因是。124:『.气『.气气」>rllJLrl>卯·Paym兮n从树rlteReSUltLI履汤硕了’;‘一薛童飞一lq二:OP]t.二,a:oDJ》90·paym兮n毛:树rlteReSUltLI>db.Davmentt'._10"':00{'._id":ob{"_id":ob,,id",,id'',,id",,name",·n胡e",,name"支付宝支付!.雇细自自自.{”银联支付”"Content,,COntent",’【ontent't:”支付失败,失败原因是。。。”}”支付失败,,,支付失败,失败原因是。失败原因是。自舀124”飞」.O,,id'.,,id",,nanle",.n胡e":”支付宝支付”,:”银联支付”,,'content":”支付失败,失败原因是。COntent:”支付失败,失败原因是。:『.嘴工JtL-LJLLJn00e!:'.:'.n卜刁LJ刁LJ:『..『.』U一一刁U"”口口>了Lrl>

 

admin数据库中查询用户数和用户信息(db.system.users.find().pretty()db.system.users.find().count)

 

计算机生成了可选文字: …>useadmin一‘一…、I.L.一一1swltchedtodbadmint)J秧兰IJadmln数循库…贾“b·system·userS·f,"d()·‘ount()查询用户count1.啥一下一…了“b·System·userS·f,nd()·pretty()查询用户信肩、

 

 

 

mongodb常用命令:

查看数据库命令:show dbs;

查看集合命令:show collections;

切换数据库:use databaseName;

查询数据:db.集合名.find()

插入数据:db.集合名.insert({name:'test',age:1});

删除:db.test.remove();

授权:db.auth("用户名","用户密码")

 

 

 

Robo3T远程连接mongodb:

计算机生成了可选文字: 品祝丫乙芝浙月J庵~砚二石j石j石j‘仁卫.L叹二几J石j口J几~几~叹二石j石j.口J弓二矛气吸巨…Phost阳ngodb]#000.0.0.y一1尸。.‘二‘anp1gre27017.0。O:LISTENn/"*"On卜O11rC、rLtUn1X2【ACC]netstat.0:STREAMLISTENIN石26984[root尽localhostrUnn,n([root尽门[root尽localhostSUCCeSS[root尽localhostmongodb]#firewall一cmd一statemongodb]#firewall一cmd一permanent帕ngodb]#firewall一cmd一permanentmongodb]#firewall一cmd一permanent3189/./帕ngodb/bin/芝189述·/mongPdb/bi/tlnp/mongoaD一。50(k一zone一public一add一port=27017/tcp一zone=public一add一port=27017/tcp一re1Oad[root尽1一bash:9仁alho冬冬mongodb」#firewall一乓md一r兮10a月TlFewall一CmO一一reloao:COmmanonotTOUnO[root尽localhostmongodb]#firewall一cmd一reloadSUCCeSSIt100ks11ket阳ngodb]#.curly0Uaretrylngto[root尽localhosthttp://192.168.62.128:acce5sMong0DBOVer27017仃ponthenativedriverport.

 

下面报错(是因为加了权限所以会报错)

 

计算机生成了可选文字: 盛Error10,卜‘翻喇CannotconnecttotheMongoDBat192.168.62.128:27017.Error:Ne七刀ork15unreachab!e.0K

配置文件

计算机生成了可选文字: [卜oot尽1ocalhost#!/bin/bash#mongodb.configmongodb]#vimmongodb.conf#端口号默认为27017,注意这里端口修改为9888后,要用阳ngo一port=9888连接,否则报错。弃斧port=9888bind一lp=0.0.0.0port=了017##数据库路径(数据文件)dbpat卜/root/DB/阳ngodb/data/db###日志存储位置logpath=/root/oB/帕ngodb/1095/mongod.log###错误日志采用追加模式,logappend=true配置这个选项后阳ngodb的日志会追加到现有的日志文件,而不是从新创建一个新文件护##启]OUrn动日志文件,默认启用al=true#这个选项可以过滤掉一些无用的日志信.息,若需要调试使用请设置为falsequlet=false#以守护程序的方式启用,即在后台运行f0Fk=tFUe#是否需要验证权肠良,巨匹h=true-弃master=trUev6:是否支持ipv6,默认false。V6=trUen尸n尸.『..1.##

 

连接:

计算机生成了可选文字: 回connectio。settings、口ColllLection人uthenticationSSHSSLAdvancedTyPeDirectCol。比ectionN白mer00tChooseanyco仙ectionn.ethatwillhelpyoutoidentifythi,connection.Addres':19216862128:27017Specifyhost.dportofMon'oDBdomainn枷e.serverHostc叭beeitherIF诫,IFv6or}0:二t」}sav。):c.oei」l

 

计算机生成了可选文字: .一一一下ConnedionSett一一叫色ingsConILection人uthenticationSSHTssLAdvanced回Ferfor。自uthenticationDatabasea面inThea面indat的a,e15皿i妙eaccesstothea面工几dat曲asehavedotab位‘.'inMongoDB.UserswireadalldwriteaCCeSSthnormaltoallU'erNS月IeYO0tPa,'word.…}sav。):c.oe:」

https://www.cnblogs.com/moxiaoan/p/5683743.html

 

 

 

 

最后剩余用户

admin

计算机生成了可选文字: >db.dropUSer('kencery')trUe>sho例users;{"_id":"admin.root",,,user":"r00t"."db":"admin","r01e5":〔{,,rOle":"rOOt",,db":"admin,,}]1了、

 

计算机生成了可选文字: gh丽『石b云气门口Cal{095rUnOOtest焦飞职服积0。000石B0.000石Bb0.QQO石B0.000石B系统数据库,剩余的是自定义数据库

 

logs数据库

计算机生成了可选文字: >甘Se.lqgsSWItCneotoitchedtodb1095。h“囚rnl1ections“、了,,5a448fd3fb1566471e967018",,Sa449285ad05fa5db17f4099",,id",,id""name'',,name":”支付宝支付”,:”银联支付”,,'ContentContent":”支付失败,失败原因是。:”支付失败,失败原因是。}14飞,矛户‘、户‘、了.、刁U刁U刁U11ntt.1CC石.ee:丫.弓工Jtbbn00et卿.='.nn卜-JU月Ue。。1。1絮。.".>n卜>了Lrll>

 

runoob数据库

计算机生成了可选文字: >USerl2018一01一095OIT21:55:32.369一0500EQUERY[threadl]SyntaxError:missingbeforestatement尽(shell):1:5>sho例col1ectionsC01run00bdb.col.find()"OeUJ,.1t.『.:tS工J,e、.产k,'_id"n00b.(,._id"O翎”。rUob通ectl户(卜.tags.,OD〕兮ctlaSn00o。〔O目口,,S科34d257b3eSIS4c4a7d4e8"),"title":"PHP教禾呈,,Url";〔”PhP'’〕,"11kes":200''Sa434d2b7b3e5154C4a7d4e9"PHp是一种创建动态交互性站点的强有力的服务器端脚本语言。”,"by''::”〕ava教程”}'.Java是由sunMicrosystems公司于1995年5月推出的高级程序设计语言。菜鸟教程/例钊钊"descrlptlon":""description":”菜鸟教程”",'.by":"F刁LJb二_1unoob.find()tags":["java"],"11":objectld("5科34b607b3e5154c4a7d4e5"),,name":'‘涣」试mongodb"}/夕刁U">rlUILp>了L>

 

test数据库

计算机生成了可选文字: >USetestSWitChedtodbtest>Sho例C01leCtionStest>db.t6St.{"_id":>口find()objectld("5科34b847b3e5154c4a7d4e6")name:"test'"}

 

 

基本命令

 

 

show dbs;//查询所有数据库名字    (创建的数据库并不在数据库的列表中,需要先插入数据才能用此命令看到这个信息)

use DATABASE_NAME ;//如果数据库不存在,则创建数据库,否则切换到指定数据库

db; //查询当前数据库名字

show collections/show tables; //查询当前数据库下面的所有集合(数据库)

> show tables

test

> show dbs

admin  0.000GB

local  0.000GB

logs   0.000GB

test   0.000GB

db.COLLECTION_NAME.find(); //查询单个集合信息

db.COLLECTION_NAME.find().pretty();//以格式化的方式查询单个集合信息

db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty();// 'where likes>50AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'

$gt --------greater than  >

$gte ---------gt equal  >=

$lt --------less than  <

$lte ---------lt equal  <=

$ne -----------not equal !=

$eq -------- equal  =

 修改数据库名字:

 

db.COLLECTION_NAME.insert(document); //插入数据信息,同时也是创建单个集合(),document是JSON数据结构,所有存储在集合中的数据都是BSON格式(是一种JSON的二进制形式的存储格式,简称Bnary JSON

 

修改数据信息

替换方式修改(需要原来数据的ID)

db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
   
"description" : "MongoDB 是一个 Nosql数据库",
   
"by" : "Runoob",
   
"url" : "http://www.runoob.com",
   
"tags" : [
           
"mongodb",
           
"NoSQL"
   
],
   
"likes" : 110
})

修改:

只更新第一条记录:

db.col.update( { "count" : { $gt : 1 } } , {$set : { "test2" : "OK"} } );

全部更新:

db.col.update( { "count" : { $gt : 3 } } , {$set : { "test2" : "OK"} },false,true );

只添加第一条:

db.col.update( { "count" : { $gt : 4 } } , {$set : { "test5" : "OK"} },true,false );

全部添加加进去:

db.col.update( { "count" : { $gt : 5 } } , {$set : { "test5" : "OK"} },true,true );

全部更新:

db.col.update( { "count" : { $gt : 15 } } , {$inc : { "count" : 1} },false,true );

只更新第一条记录:

db.col.update( { "count" : { $gt : 10 } } , {$inc : { "count" : 1} },false,false );

db.collection.update(<query>,<update>,{upsert: <boolean>, multi: <boolean>, writeConcern: <document> })参数说明

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

 

db.dropDatabase();  //删除数据库(),在使用之前,先得切换到要删除的库中

db.COLLECTION_NAME.drop(); //删除集合(表)

删除数据信息

>db.col.remove({'title':'MongoDB 教程'})
WriteResult({ "nRemoved" : 2 })           # 删除了两条数据

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)  //删除第一条找到的记录可以设置 justOne为 1

>db.col.remove({})   //删除所有数据

 

给数据库添加用户权限

1 进入ljc 数据库:      

useljc;             --ljc为数据库名称。

2添加用户(读写权限,readOnly-->false):

 db.addUser("java","java");

3 查看一下所有的用户

db.system.users.find(); //show users

{ "_id" : ObjectId("4e02a89fb841deb5fda3e5e2"),"user" : "java", "readOnly" : fa

lse, "pwd" :"59cf7cc156874cbd35cb00869126f569" }

4用户授权。

db.auth("java","java");   显示为1 表示授权成功,0表示不成功。 

5 添加用户(只读权限,readOnly-->true):

db.addUser("java1","java1",true);

db.system.users.find();

{"_id" : ObjectId("4e02a89fb841deb5fda3e5e2"),"user" : "java", "readOnly" : false, "pwd" :"59cf7cc156874cbd35cb00869126f569" }

{"_id" : ObjectId("4e02aae6b841deb5fda3e5e3"),"user" : "java1", "readOnly" : true, "pwd" :"fca6bda05c87a72cce0a4a6458d1e266" }

 

db.createUser({user:"admin",pwd:"admin",customData:{description:"超级用户角色"},roles:[{role:"root",db:"admin"}]})

db.createUser({user:"zxy01",pwd:"123456",customData:{description:"只读管理员"},roles:[{role:"read",db:"logs,meetings"}]})

db.createUser({user:"zxy02",pwd:"123456",customData:{description:"读管理员"},roles:[{role:"readWrite",db:"logs,meetings"}]})

6更改密码(为已经存在的用户更改密码):

 db.addUser("java","java1"); 

7删除用户:

db.system.users.remove({user:"java1"});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值