Mongodb中经常出现的错误,mongo安装以及远程访问金沙8331网址:

今天在配置MongoDB时发生了以下几个错误, 已经被我解决了,提供给大家.

在linux下通过apt-get install mongo的方式一键式安装mongo

2015-05-12T09:30:26.313+0800 I STORAGE [initandlisten] exception in
initAndListen: 28574 Cannot start server. Detected data files in
/root/Desktop/mongodb/data created by storage engine ‘mmapv1’. The
configured storage engine is ‘wiredTiger’.,
terminating2015-05-12T09:30:26.313+0800 I CONTROL [initandlisten]
dbexit: rc: 1002015-05-12T09:31:53.043+0800 I CONTROL ***** SERVER
RESTARTED *****2015-05-12T09:31:53.049+0800 I STORAGE
[initandlisten] exception in initAndListen: 28574 Cannot start server.
Detected data files in /root/Desktop/mongodb/data created by storage
engine ‘mmapv1’. The configured storage engine is ‘wiredTiger’.,
terminating2015-05-12T09:31:53.050+0800 I CONTROL [initandlisten]
dbexit: rc: 100

安装后mongo的配置文件位于/etc/mongodb.conf. 里面有mongo的各项配置,文件内容如下:重要的主要有下面几项:

补充一下:如果存储空间满了的话也会出现
rc:100错误。总线一下:rc:100是系统文件错误

1 dbpath:存放数据库文件的地方

错误原因:
之前使用mmapv1创建的数据库不能使用wiredTiger打开,需要重新指定dbpath

2 logpath: 存放log的地方

[root@localhost Desktop]# Python mongodb.pyabout to fork child
process, waiting until server is ready for connections.about to fork
child process, waiting until server is ready for connections.forked
process: 36411forked process: 36412about to fork child process, waiting
until server is ready for connections.forked process: 36414ERROR: child
process failed, exited with error number 100ERROR: child process failed,
exited with error number 100ERROR: child process failed, exited with
error number 100

3 bind_ip = 127.0.0.1。安装好之后默认只允许本地访问。限制访问的IP为127.0.0.1。如果要允许所有的地址访问。需要将此行注释掉

错误原因: mongodb非正常关闭 删除mongod.lock文件即可.

4 port:访问的端口号

ERROR: child process failed ,exited with error number 1

5 auth=true (添加帐号,密码认证)

错误原因: dbpath文件的权限问题,增加写权限即可

root@zhf-maple:/home/zhf# cat /etc/mongodb.conf

mongodb.conf bind 不能写127.0.0.1否则其它主机连接不了

# mongodb.conf

情况不唯一,这边只能当参考,大致就是这么几种解决思路

 

child process failed, exited with error number 1

# Where to store the data.

child process failed, exited with error number 48

dbpath=/var/lib/mongodb

child process failed, exited with error number 100

 

前今天装了MongoDB后,今天早上启动服务的时候启动不了了,出现错误如下:

#where to log

错误:

logpath=/var/log/mongodb/mongodb.log

错误2:系统找不到指定文件

 

思考过程:

logappend=true

昨天做测试的时候,先后安装了两次MongoDB,后来我又删除了一个MongoDB文件夹,当前这个服务是不是默认的MongoDB的安装地址错误呢?

 

查看服务属性,Mongo的地址是已经删除了的个地址,而不是当前我用的这个地址。当前用的地址是:E:Program
filesmongodbbin

bind_ip = 127.0.0.1

解决方式:

#port = 27017

先卸载原来的安装,再次安装新的。

 

Mongo卸载:

# Enable journaling, 

卸载:mongod.exe –remove –serviceName “MongoDB”

journal=true

MongoDB安装为服务:

 

安装:mongod.exe –install –logpath=”E:Program
filesmongodbdataloglog.txt”–dbpath=”E:Program
filesmongodbdatadb”

# Enables periodic logging of CPU utilization and I/O wait

安装后刷新服务,地址改变:

#cpu = true

再次启动MongoDB服务,启动失败,出现1607错误。

 

错误:

# Turn on/off security.  Off is currently the default

错误原因:不明

#noauth = true

解决方式:

#auth = true

删除E:Program filesmongodbdatadb目录下的mongod.lock文件。

 

再次重启服务,启动成功。

# Verbose logging output.

总结:

#verbose = true

接触一个新的东西的时候,难免出现错误,错误来了,就解决,不要躲着,拖着。

 

# Inspect all client data for validity on receipt (useful for

# developing drivers)

#objcheck = true

 

# Enable db quota management

#quota = true

 

# Set oplogging level where n is

#   0=off (default)

#   1=W

#   2=R

#   3=both

#   7=W+some reads

#oplog = 0

 

# Diagnostic/debugging option

#nocursors = true

 

# Ignore query hints

#nohints = true

 

# Disable the HTTP interface (Defaults to localhost:27018).

#nohttpinterface = true

 

# Turns off server-side scripting.  This will result in greatly limited

# functionality

#noscripting = true

 

# Turns off table scans.  Any query that would do a table scan fails.

#notablescan = true

 

# Disable data file preallocation.

#noprealloc = true

 

# Specify .ns file size for new databases.

# nssize = <size>

 

# Accout token for Mongo monitoring server.

#mms-token = <token>

 

# Server name for Mongo monitoring server.

#mms-name = <server-name>

 

# Ping interval for Mongo monitoring server.

#mms-interval = <seconds>

 

# Replication Options

 

# in replicated mongo databases, specify here whether this is a slave or master

#slave = true

#source = master.example.com

# Slave only: specify a single database to replicate

#only = master.example.com

# or

#master = true

#source = slave.example.com

 

# Address of a server to pair with.

#pairwith = <server:port>

# Address of arbiter server.

#arbiter = <server:port>

# Automatically resync if slave data is stale

#autoresync

# Custom size for replication operation log.

#oplogSize = <MB>

# Size limit for in-memory storage of op ids.

#opIdMem = <bytes>

 

# SSL options

# Enable SSL on normal ports

#sslOnNormalPorts = true

# SSL Key file and password

#sslPEMKeyFile = /etc/ssl/mongodb.pem

#sslPEMKeyPassword = pass

 

安装后之后输入mongo命令进入shell界面

root@zhf-maple:/home/zhf# mongo

MongoDB shell version v3.4.7

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 3.4.7

Server has startup warnings: 

2017-12-12T20:16:00.856+0800 I STORAGE  [initandlisten] 

2017-12-12T20:16:00.856+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

2017-12-12T20:16:00.856+0800 I STORAGE  [initandlisten] **          See 

2017-12-12T20:16:04.012+0800 I CONTROL  [initandlisten] 

2017-12-12T20:16:04.012+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.

2017-12-12T20:16:04.012+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

2017-12-12T20:16:04.012+0800 I CONTROL  [initandlisten] 

可以通过db.system.users.find()来查询所有的用户

添加用户名和帐号

> db.createUser({user:’zhf’,pwd:’123′,roles:[‘userAdminAnyDatabase’]})

Successfully added user: { “user” : “zhf”, “roles” : [ “userAdminAnyDatabase” ] 

 

设置远程连接:

配置文件修改如下:注释掉bind_ip,

#bind_ip = 127.0.0.1

port = 27017

 

添加路由开发27017端口

root@zhf-maple:/home/zhf# iptables -A INPUT -p tcp -m state –state NEW -m tcp –dport 27017 -j ACCEPT

 

启动mong服务。

root@zhf-maple:/var/lib/mongodb# mongod –dbpath /var/lib/mongodb

2017-12-12T22:39:13.060+0800 I CONTROL  [initandlisten] MongoDB starting : pid=16691 port=27017 dbpath=/var/lib/mongodb 64-bit host=zhf-maple

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] db version v3.4.7

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] allocator: tcmalloc

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] modules: none

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] build environment:

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten]     distarch: x86_64

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten]     target_arch: x86_64

2017-12-12T22:39:13.061+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: “/var/lib/mongodb” } }

2017-12-12T22:39:13.079+0800 E NETWORK  [initandlisten] listen(): bind() failed Address already in use for socket: 0.0.0.0:27017

2017-12-12T22:39:13.079+0800 E NETWORK  [initandlisten]   addr already in use

2017-12-12T22:39:13.079+0800 E NETWORK  [initandlisten] Failed to set up sockets during startup.

2017-12-12T22:39:13.079+0800 E STORAGE  [initandlisten] Failed to set up listener: InternalError: Failed to set up sockets

2017-12-12T22:39:13.079+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets…

2017-12-12T22:39:13.079+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog…

2017-12-12T22:39:13.079+0800 I CONTROL  [initandlisten] now exiting

2017-12-12T22:39:13.079+0800 I CONTROL  [initandlisten] shutting down with code:48

这里提示端口和地址已经被使用。通过netstat命令可以查看到确实有一个

root@zhf-maple:/var/lib/mongodb# netstat -anp|more

激活Internet连接 (服务器和已建立连接的)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      749/mongod  

 

杀掉正在运行的进程:kill -9 749并再次重启服务:

root@zhf-maple:/var/lib/mongodb# mongod –dbpath /var/lib/mongodb

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] MongoDB starting : pid=16780 port=27017 dbpath=/var/lib/mongodb 64-bit host=zhf-maple

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] db version v3.4.7

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] allocator: tcmalloc

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] modules: none

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] build environment:

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten]     distarch: x86_64

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten]     target_arch: x86_64

2017-12-12T22:41:25.966+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: “/var/lib/mongodb” } }

2017-12-12T22:41:25.984+0800 I –        [initandlisten] Detected data files in /var/lib/mongodb created by the ‘wiredTiger’ storage engine, so setting the active storage engine to ‘wiredTiger’.

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] 

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] **          See 

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3417M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] 

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] 

2017-12-12T22:41:27.103+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory ‘/var/lib/mongodb/diagnostic.data’

2017-12-12T22:41:27.104+0800 I NETWORK  [thread1] waiting for connections on port 27017

2017-12-12T22:41:28.028+0800 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK

2017-12-12T22:41:50.776+0800 I NETWORK  [thread1] connection accepted from 192.168.0.11:35718 #1 (1 connection now open)

2017-12-12T22:46:10.454+0800 I –        [conn1] end connection 192.168.0.11:35718 (1 connection now open)

2017-12-12T22:46:54.889+0800 I NETWORK  [thread1] connection accepted from 192.168.0.11:35734 #2 (1 connection now open)

代表服务开启成功。

 

在客户端上通过mongo 192.168.0.12:27017/admin 访问服务器的admin数据库

root@zhf-linux:~# mongo 192.168.0.12:27017/admin

MongoDB shell version: 2.6.10

connecting to: 192.168.0.12:27017/admin

Server has startup warnings: 

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] 

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

2017-12-12T22:41:25.984+0800 I STORAGE  [initandlisten] **          See 

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] 

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.

2017-12-12T22:41:27.096+0800 I CONTROL  [initandlisten] 

 

 

关闭服务器。主要有两种方法:

1 输入Ctrl+C关闭。这种关闭方式会等待当前进行中的的操作完成,所以依然是干净的关闭方式。

2 登录数据库。然后输入下面的命令进行关闭

> use admin

switched to db admin

> db.shutdownServer()

server should be down…

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注