概述
Mongodb报错及解决办法集合:
>db.daily_csv_test.drop();
删除有数据的表示报错如下:
Thu Nov 28 10:30:40.833 SyntaxError: Unexpected token ILLEGAL
解决办法:>var c = db.getCollection(‘player’);c.drop(); 其中player是删除的表
启动 service mongod restart 是报错:
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
原因:配置文件错误,/etc/mongod.cnf中mongod配置文件中数据库路径的设置,或者是新增仓库没有mongod用户的权限
配置副本集报错
{ “ok” : 0, “errmsg” : “server is not running with –replSet” }
解决办法:在mongodb的配置文件中没有开启replset选项
配置副本集之后报错:
“errmsg” : “couldn’t parse cfg object unexpected field ‘_id ’ in object
原因:配置的mongodb的数据库不是空的,我主要是这个原因,也可以在其他机器上面初始化。
error: {
首先检查是否有yum的源 yum info mongo-10gen 如果报错则配置yum
在/etc/yum.repos.d目录下创建mongodb的yum源配置文件10gen.repo
在文件中添加如下内容:vim 10gen.repo
[10gen]
Name=10gen Repository
Baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
Gpgcheck=0
如下是安装mongodb的命令
最后查看mongodb包的相关信息: yum info mongo-10gen-server
创建系统开机启动: chckconfig –list
chkconfig –add
启动(关闭/重启)mongo服务
Mongodb的常用命令
登陆mongdb数据库#mongo admin
使用数据库>use admin
显示mongodb数据库中所有的数据库>show
显示 数据库中所有的集合(表)>show collections;
创建集合 >db.createCollection(”自己创建表的名称”);如log
查看集合中的数据>db.log.find();
在集合中添加数据>db.log.save({age:1});
创建用户 >db.addUser(“自己创建用户”,”密码”);如用户名kernel 密码:123456
对用户名进行认证>db.auth(“用户名”,”密码”);没有认证的用户名无法对mongodb数据库进行操作
查看已存在的用户命令:db.system.users.find()
二,mongodb数据库导入csv文件(本地服务器)
参数说明:
-h 192.168.38.143:27017
-d
-c user
-f datetime, loglevel,id,title,content,moduledetail,threaded
-type
这是一张csv的表中的元素:
mongoimport导入如上图的一张表,其中导入数据库名是log,表名(collection)名:player,可以随意取名字。本地目录的CSV表:player.csv
Mongoimport
mongoexport
如果导入和导出的时候。表的结构不是CSV数据类型,而是bson数据,如图:
导出命令如下:mongoexport
导入命令:mongoimport
二,远程导入与导出
远程IP地址:192.168.38.120,数据库名:log 数据库用户名:root 密码123456 数据库中的表名:player
远程导出如下:
mongoexport -h 192.168.38.120 -d log
远程导入如下:
mongoimport -h 192.168.38.120 -d log
CSV数据远程导出
这里远程服务器没有开启认证,
mongoexport -h 192.168.38.143 -d log -c daily
远程导入CVS数据:
mongoimport -h 192.168.38.120 -d log -c daily -f id,datetime,loglevel,title,content,moduledetail,threadid –type csv
Mongodb主服务器配置如下:
登陆主机ip:192.168.38.117做如下的配置:
修改mongodb配置文件Vim /etc/mongo.cnf
Master = ture
Source = 192.168.38.143 从机的源IP地址
完成配置之后重启 service mongod restart
登陆从机IP:192.168.38.143 做如下的配置
修改从机的mongodb的配置文件vim
Slave = ture
Source = 192.168.38.143 主机源IP地址
配置完成之后重启
主从测试:登陆(192.168.38.117)主机的数据库
>db.addUser(“test”,”123456”);
>db.auth(“test”,”123456”);
>use test;
>createCollections(“kernel”);
>show collections();
>db.kernel.save({age:10});
>db.kernel.find();
确保有数据以后,登陆(192.168.38.143)从服务器的数据库检查数据是否同步
# mongo
>db.kernel.find();如果看到刚才的数据,则说明配置成功
提醒:1.配置mongodb自动故障恢复功能的主从集群。一定要确保mongo里面的除了admin和local之外的数据库为空时进行搭建,否则初始化成员节点的时候,一定会失败的,2.如果数据库是空的,依然初始化节点失败,则需要到从机上面执行初始化配置。因为在主从复制的时候,活跃节点会发生变化。会导致初始化节点失败。
报错如下:
修改mongo的配置文件
replSet = i9yu
保存,退出。
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
说明复制集群没有进行配置。
配置节点成员:
cfg={ _id:’i9yu’,members:[{_id:0,host:’192.168.38.117:27017’},{_id:1,host:’192.168.38.143:27017’}]}
cfg={_id : ’i9yu’,members:[ { _id:0,host:’192.168.38.117:27017’}, { _id:1,host:’192.168.38.143:27017’} ]}
信息显示如下:{
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
_id:i9yu 表示副本集名称的id mongodb随机分配存储的id
Member[]
初始化配置
> rs.initiate(cfg)
{
}
如上所示表明配置成功,显示标签发生变化。
查看配置的当前状态:
> rs.status()
最后
以上就是任性冬天为你收集整理的Mongodb报错及解决办法集合的全部内容,希望文章能够帮你解决Mongodb报错及解决办法集合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复