MongoDB - 使用 code:100 关闭
MongoDB - shutting down with code:100
我一直在尝试在我的 Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64)
VPS 上设置 MongoDB,但 运行 遇到了一些问题。我是 运行 作为我的服务器上的用户,拥有 root
访问权限但不使用 root
帐户本身。
我在 admin
数据库上执行 db.createUser()
时开始注意到这个问题,因此我可以添加其他用户,但我收到了这个错误:
not authorized to execute command
所以我继续卸载并使用网站上提供的教程再次安装:https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
现在当我在舞台上时 2 验证 MongoDB 已在 运行 MongoDB 上成功启动 Community Edition 部分,即我查看文件 /var/log/mongodb/mongod.log
的输出,我得到以下内容:
2017-04-14T14:23:09.309+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit host=vps338741
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] db version v3.4.3
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] allocator: tcmalloc
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] modules: none
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] build environment:
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distarch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] target_arch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten]
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=464M,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-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
2017-04-14T14:23:09.367+0200 I - [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2017-04-14T14:23:09.367+0200 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] now exiting
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] shutting down with code:100
我环顾四周,发现不是同一个错误 ,因为这与我没有 /data/db
文件夹这一事实有关。从该日志中我可以看出这与此行有关:
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
这是真的,当我去 /var/lib/mongodb
并执行 ls -l
结果是:
drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:02 mongod.lock
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:10 WiredTiger
-rw-r--r-- 1 mongodb mongodb 21 Apr 14 14:10 WiredTiger.lock
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle
但我不知道是否应该手动创建该文件,因为在其他地方没有看到这个问题。我确保 mongodb
用户也有这些文件的权限,如 in the answer to this question 所述,但仍然没有成功。
我真的不知道该怎么做,任何帮助将不胜感激,因为这是我第五次尝试让它工作!
谢谢!
这是 MongoDB 中的一个已知错误,检查 report
您的问题不是一般情况下文件丢失,而是在干净关闭后重新启动时文件丢失。您的问题与 /data/db
目录无关,但与重启后丢失的 WiredTiger.wt
文件有关。
Oct 1 20:00:44 alpha mongod.27017[1074]: [initandlisten] WiredTiger
(2) [1443729644:306783][1074:0x7fdba8fd4bc0], file:WiredTiger.wt,
connection: /data/db/WiredTiger.wt: No such file or directory
错误报告谈到了同样的事情。
尝试:
我建议尝试在配置文件中禁用 WiredTiger。
更新: 要禁用 WiredTiger
,您必须更改 mongo 配置文件中的 storage.engine
选项,默认情况下 mongod 使用 WiredTiger
但你也可以使用 InMemory
LINK
如果您创建了 mkdir -p /data/db
,您可能必须使用以下命令启动服务器:sudo mongod
macOS/OSX : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
对我来说 'answer' 是执行以下命令(因为 service mongod start
并且 mongod
失败了)
sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log
我不需要关闭 wired tiger
尝试:
sudo service mongod start ;
然后 运行 mongodb 与:
mongo
这个命令帮助了我:
mongod --dbpath /data/db --repair
创建一个目录
sudo mkdir /data/db
提供对目录的访问权限
sudo chown -R $USER /data/db
然后运行
mongod
如果你得到的端口已经在使用 stop mongod,它可能在后台 运行ning
sudo service mongod stop
如果最后一行是
waiting for connections on port 27017
那么 mongod 正在工作
Docker 容器:
就我而言,我使用的是 docker 容器 运行
mongodb:
image: 'bitnami/mongodb:latest'
user: root
command: "chown -R $USER /bitnami/mongodb"
volumes:
- '/var/www/mongodb_data:/bitnami'
environment:
- MONGODB_USERNAME=bn_parse
- MONGODB_PASSWORD=3yfQexfqcc
- MONGODB_DATABASE=bitnami_parse
我将 docker 主机迁移到其他 VPS/VM(aws 太贵了)。
我临时添加了命令“chown -R $USER /bitnami/mongodb”来更改该文件夹的所有者/bitnami/mongodb。成功了。
我一直在尝试在我的 Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64)
VPS 上设置 MongoDB,但 运行 遇到了一些问题。我是 运行 作为我的服务器上的用户,拥有 root
访问权限但不使用 root
帐户本身。
我在 admin
数据库上执行 db.createUser()
时开始注意到这个问题,因此我可以添加其他用户,但我收到了这个错误:
not authorized to execute command
所以我继续卸载并使用网站上提供的教程再次安装:https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
现在当我在舞台上时 2 验证 MongoDB 已在 运行 MongoDB 上成功启动 Community Edition 部分,即我查看文件 /var/log/mongodb/mongod.log
的输出,我得到以下内容:
2017-04-14T14:23:09.309+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit host=vps338741
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] db version v3.4.3
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] allocator: tcmalloc
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] modules: none
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] build environment:
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distarch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] target_arch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten]
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=464M,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-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
2017-04-14T14:23:09.367+0200 I - [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2017-04-14T14:23:09.367+0200 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] now exiting
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] shutting down with code:100
我环顾四周,发现不是同一个错误 /data/db
文件夹这一事实有关。从该日志中我可以看出这与此行有关:
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
这是真的,当我去 /var/lib/mongodb
并执行 ls -l
结果是:
drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:02 mongod.lock
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:10 WiredTiger
-rw-r--r-- 1 mongodb mongodb 21 Apr 14 14:10 WiredTiger.lock
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle
但我不知道是否应该手动创建该文件,因为在其他地方没有看到这个问题。我确保 mongodb
用户也有这些文件的权限,如 in the answer to this question 所述,但仍然没有成功。
我真的不知道该怎么做,任何帮助将不胜感激,因为这是我第五次尝试让它工作!
谢谢!
这是 MongoDB 中的一个已知错误,检查 report
您的问题不是一般情况下文件丢失,而是在干净关闭后重新启动时文件丢失。您的问题与 /data/db
目录无关,但与重启后丢失的 WiredTiger.wt
文件有关。
Oct 1 20:00:44 alpha mongod.27017[1074]: [initandlisten] WiredTiger (2) [1443729644:306783][1074:0x7fdba8fd4bc0], file:WiredTiger.wt, connection: /data/db/WiredTiger.wt: No such file or directory
错误报告谈到了同样的事情。
尝试:
我建议尝试在配置文件中禁用 WiredTiger。
更新: 要禁用 WiredTiger
,您必须更改 mongo 配置文件中的 storage.engine
选项,默认情况下 mongod 使用 WiredTiger
但你也可以使用 InMemory
LINK
如果您创建了 mkdir -p /data/db
,您可能必须使用以下命令启动服务器:sudo mongod
macOS/OSX : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
对我来说 'answer' 是执行以下命令(因为 service mongod start
并且 mongod
失败了)
sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log
我不需要关闭 wired tiger
尝试:
sudo service mongod start ;
然后 运行 mongodb 与:
mongo
这个命令帮助了我:
mongod --dbpath /data/db --repair
创建一个目录
sudo mkdir /data/db
提供对目录的访问权限
sudo chown -R $USER /data/db
然后运行
mongod
如果你得到的端口已经在使用 stop mongod,它可能在后台 运行ning
sudo service mongod stop
如果最后一行是
waiting for connections on port 27017
那么 mongod 正在工作
Docker 容器:
就我而言,我使用的是 docker 容器 运行
mongodb:
image: 'bitnami/mongodb:latest'
user: root
command: "chown -R $USER /bitnami/mongodb"
volumes:
- '/var/www/mongodb_data:/bitnami'
environment:
- MONGODB_USERNAME=bn_parse
- MONGODB_PASSWORD=3yfQexfqcc
- MONGODB_DATABASE=bitnami_parse
我将 docker 主机迁移到其他 VPS/VM(aws 太贵了)。
我临时添加了命令“chown -R $USER /bitnami/mongodb”来更改该文件夹的所有者/bitnami/mongodb。成功了。