我在尝试运行命令时收到此错误
mongod --dbpath=/var/lib/mongodb
{"t":{"$date":"2021-01-23T11:23:41.733-07:00"},"s":"I", "c":"CONTROL", "id":51765, "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Ubuntu","version":"20.04"}}}
{"t":{"$date":"2021-01-23T11:23:41.733-07:00"},"s":"I", "c":"CONTROL", "id":21951, "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"storage":{"dbPath":"/var/lib/mongodb"}}}}
{"t":{"$date":"2021-01-23T11:23:41.734-07:00"},"s":"E", "c":"STORAGE", "id":20568, "ctx":"initandlisten","msg":"Error setting up listener","attr":{"error":{"code":9001,"codeName":"SocketException","errmsg":"Address already in use"}}}
Run Code Online (Sandbox Code Playgroud)
我确实看到问题是
"attr":{"error":{"code":9001,"codeName":"SocketException","errmsg":"Address already in use"}}}
但我不知道如何解决这个问题?
我尝试了另一篇 SO 帖子中的其他建议,该建议说要终止进程并重新启动。我这样做了,但它对我不起作用。
我还尝试在不同的端口上运行 mongod
mongod --dbpath=/var/lib/mongodb --port 27019
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误
{"t":{"$date":"2021-01-23T11:27:29.535-07:00"},"s":"E", "c":"STORAGE", "id":20557, "ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb"}}
Run Code Online (Sandbox Code Playgroud)
所以它是一个只读目录所以我跑了
sudo chmod -R 777 /var/lib/mongodb
Run Code Online (Sandbox Code Playgroud)
然后我在日志中收到此错误
"ctx":"initandlisten","msg":"DBException in initAndListen, terminating","attr":{"error":"DBPathInUse: Unable to lock the lock file: /var/lib/mongodb/mongod.lock (Resource temporarily unavailable). Another mongod instance is already running on the /var/lib/mongodb directory"}}
Run Code Online (Sandbox Code Playgroud)
所以我尝试找出正在运行的其他进程
ps -eaf | grep mongod
mongodb 722732 1 0 11:09 ? 00:00:10 /usr/bin/mongod --config /etc/mongod.conf
srt 725772 720106 0 11:34 pts/2 00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox mongod
Run Code Online (Sandbox Code Playgroud)
但我不知道从这里该做什么。
R2D*_*2D2 11
您已经使用默认的 /etc/mongod.conf 文件运行默认自动启动的 mongod 实例,您可以通过以下方式停止该实例:
service mongod stop
Run Code Online (Sandbox Code Playgroud)
或者
kill -2 722732
Run Code Online (Sandbox Code Playgroud)
或者
mongo --port 27017
>use admin
>db.shutdownServer()
Run Code Online (Sandbox Code Playgroud)
或者
systemctl stop mongod
Run Code Online (Sandbox Code Playgroud)
您可以根据需要修改 /etc/mongod.conf 文件并再次启动
service mongod start
Run Code Online (Sandbox Code Playgroud)
或者:
systemctl start mongod
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17281 次 |
最近记录: |