
您好,网上有些说删除Mongodb数据库目录下的mongodlock文件之后可以正常重启服务,但是笔者试了之后还是不行,也觉得删除这类文件是治标不治本或者不安全的。仔细看了下上面链接中的文档,因为我并未按照默认的C:\路径安装Mongodb,以及在C:\下面md data文件存放数据库,而是放在了D:\MongoDB(程序目录),以及D:\DB_MongoDB(数据库目录),初步觉得问题就出在这个问题之上。 mongodb没启动。先在shell里输入mongod启动mongodb 然后在输入mongo启动管理台进行管理。
原因是mongodb设计的本身机制问题造成的。
首先,mongodb在创建数据文件时,会根据64M,128M,256M递增的方式产生数据文件,最大数据文件为2G,增大到2G之后,后面新增的数据文件都占用2G空间。
当删除某一个表的数据时,mongodb会标记你删除该表所在数据文件位置为:该部分的数据已经删除,但是不会释放该数据文件所占用的空间,当有新的数据进来之后,会将数据分配到该数据文件中。
一方面是:删除文件后不产生多余的数据碎片,
另一方面不做数据的大规模迁移,减少mongodb内部的IO *** 作。
所以在删除数据表之后,会发现系统空间并没有释放,从mongodb本身看,空间已经释放了,被删除数据的空间依然可用;
但从系统角度看,空间没有释放,并不会影响数据的存储。
想在shell中连接数据库,首先要在连接数据的机器上安装mongodb的客户端才可以。客户端的安装在这里不再重复,自己百度或者google一下吧。连接mongodb的命令如下:/home/test/mongodb/mongodb-223/bin/mongo 127001:8888
这个是我的数据库配置,没有设置用户名密码。所以直接通过该命令就可以连接。
连结后会有一个默认连接的数据库。
mongodb常用命令:
查看数据库命令:
show dbs;
查看集合命令:
show collections;
切换数据库:
use databaseName;
查询数据:
db集合名find()
插入数据:
db集合名insert({name:'test',age:1});
删除:
dbtestremove();
sql="dbtestinsert({name:'test',age:1});"//定义执行的sqlecho "$sql"|/home/test/mongodb/mongodb-223/bin/mongo 127001:8888/test --shell
注意,echo命令中的格式必须这样写,管线命令后面的是是数据库安装地址 然后是ip:端口号,斜线后是数据库名称,--shell表示通过shell交互!
以上就是关于win7下安装mongodb后找不到mongodb服务是怎么回事全部的内容,包括:win7下安装mongodb后找不到mongodb服务是怎么回事、mongodb 删除后为什么不释放空间、linux怎么连接mongodb数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)