เมื่อฉันตั้งค่า mongodb ในอูบุนตูของฉันฉันลอง: ./mongo มันแสดงข้อผิดพลาดนี้:
couldn't connect to server 127.0.0.1 shell/mongo.js
แล้วฉันจะทำอย่างไร
ขอบคุณ
เมื่อฉันตั้งค่า mongodb ในอูบุนตูของฉันฉันลอง: ./mongo มันแสดงข้อผิดพลาดนี้:
couldn't connect to server 127.0.0.1 shell/mongo.js
แล้วฉันจะทำอย่างไร
ขอบคุณ
mongod
ก่อน
คำตอบ:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
โปรดทราบสิ่งต่อไปนี้:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start
นี่คือทั้งหมดบางครั้งอาจใช้เวลาสักครู่ในการเริ่ม mongo หลังจากดำเนินการเหล่านี้
Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
ลองใช้ $ mongod
หากคุณได้รับข้อผิดพลาดเช่น
MongoDB shell version: 2.0.5
connecting to: test
Fri Jun 1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
Fri Jun 1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local
Fri Jun 1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun 1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun 1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun 1 11:24:47 [initandlisten] options: {}
Fri Jun 1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun 1 11:24:47 dbexit:
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun 1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun 1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun 1 11:24:47 dbexit: really exiting now
จากนั้นคุณพบข้อผิดพลาดพื้นฐานในการเริ่มต้นระบบที่พบได้บ่อย
โดยค่าเริ่มต้น mongod จะพยายามใช้ / data / db สำหรับไฟล์ฐานข้อมูลซึ่งในกรณีนี้ไม่มีอยู่
คุณไม่สามารถเริ่มต้นได้
mongo
จนกว่าคุณจะจัดการ
mongod.
ลองสร้างไดเร็กทอรีเหล่านั้นและตรวจสอบให้แน่ใจว่าสามารถเขียนได้โดยผู้ใช้คนเดียวกันกับที่รันกระบวนการ mongod
** ดูคำถามที่คล้ายกัน - ได้รับข้อผิดพลาด "ข้อผิดพลาด: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ 127.0.0.1 shell / mongo.js" & เมื่อพยายามเรียกใช้ mongodb บน mac osx lion
นี่ไม่ใช่ข้อผิดพลาดจริงๆ ... สิ่งที่เกิดขึ้นที่นี่คือ Mongo อาศัยdaemonเพื่อเรียกใช้เซิร์ฟเวอร์ฐานข้อมูลภายในดังนั้นเพื่อที่จะ "เริ่มทำงาน" เซิร์ฟเวอร์ mongoในเชลล์ของคุณคุณต้องเริ่มบริการ mongoอันดับแรก.
สำหรับFedora Linux (ซึ่งเป็น Distro ที่ฉันใช้) คุณต้องเรียกใช้คำสั่งเหล่านี้:
1 sudo service mongod start
2 mongo
และคุณมีมัน! เซิร์ฟเวอร์กำลังจะทำงาน ตอนนี้หากคุณต้องการให้บริการ Mongo เริ่มทำงานเมื่อระบบบูทคุณต้องเรียกใช้:
sudo chkconfig --levels 235 mongod on
และนั่นคือทั้งหมด! หากคุณทำเช่นนั้นตอนนี้ในเชลล์คุณต้องพิมพ์mongoเพื่อเริ่มเซิร์ฟเวอร์ แต่มันก็ค่อนข้างดีปัญหาคือคุณต้องเริ่มบริการก่อนแล้วจึงเซิร์ฟเวอร์ :)
ปล. คำสั่งที่ฉันโพสต์อาจใช้ได้กับ linux distros อื่น ๆ เช่นกันไม่ใช่แค่ใน fedora ... ในกรณีที่คุณไม่จำเป็นต้องปรับแต่งบางคำขึ้นอยู่กับ distro ที่คุณใช้;)
sudo service mongodb start
ฉันพบปัญหาเดียวกันเมื่อพยายามติดตั้ง mongo ฉันได้รับข้อผิดพลาดเป็น
ข้อผิดพลาด
"Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84"
วิธีการแก้:
ติดตั้ง mongod ก่อนโดยใช้:
sudo apt-get install mongodb-server
จากนั้นพิมพ์
mongod --dbpath /mongo/db
แล้ว
sudo rm /var/lib/mongodb/mongod.lock
แล้ว
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
ขอขอบคุณ
คุณต้องลบ lockfile mongod.lock
หรือ/var/lib/mongodb/mongod.lock
บน ubuntu จากนั้นคุณต้องเรียกใช้mongod.exe
หรือservice mongodb start
บน ubuntu ก่อนจากนั้นจึงเรียกใช้mongo.exe
หรือmongo
บน ubuntu
.exe
ไฟล์ใด ๆ
mongod ของคุณไม่ทำงาน (ตรวจสอบโดยใช้คำสั่ง "ps") หรือกำลังฟังที่อยู่ IP ภายนอกบางส่วนไม่ใช่ใน localhost ก่อนอื่นให้ตรวจสอบรายการกระบวนการว่า 'mongod' กำลังทำงานอยู่ ถ้าใช่ให้ตรวจสอบด้วย "netstat -nap" สำหรับพอร์ตที่เกี่ยวข้อง
แน่นอนว่าคุณสามารถเริ่ม mongod บนคอนโซลได้ด้วยตนเองหรือแม้แต่ดูไฟล์บันทึก mongod (หากมีการกำหนดค่าไว้ ... ขึ้นอยู่กับว่าคุณติดตั้ง mongod อย่างไร)
ก่อนอื่นคุณต้องตรวจสอบให้แน่ใจว่าไฟล์และไดเร็กทอรีทั้งหมดในโฟลเดอร์ / var / lib / mongodb / ของคุณ (หรือโฟลเดอร์ใดก็ตามที่ dbpath ชี้ไป) เป็นของผู้ใช้ mongodb และกลุ่ม mongodb
cd /var/lib/mongodb/
sudo chown mongodb filename.*
sudo chgrp mongodb filename.*
sudo chown -R mongodb directory
sudo chgrp -R mongodb directory
(แทนที่ชื่อไฟล์และไดเรกทอรีด้วยชื่อตามลำดับ)
จากนั้นคุณสามารถลบล็อคซ่อมแซมฐานข้อมูลและรีสตาร์ท daemon ตามที่คนอื่นพูดถึงแล้ว:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start
sudo -u mongodb mongod -f /etc/mongod.conf --repair
ใน Ubuntu 14
เริ่มต้นเซิร์ฟเวอร์ Mongo ของคุณก่อนโดย
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log
จากนั้นเปิดหน้าต่างเทอร์มินัลอื่นและเปิดเชลล์
Users-MacBook-Pro:csv1 Admin$ mongo
ตรวจสอบด้วยว่ารูทพาร์ติชันของคุณมีพื้นที่เพียงพอที่จะเริ่ม mongod
df -h /
คุณจะเห็น smth เช่นนี้ในการเปิดตัว mongod:
Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 12 17:02:59.159 [initandlisten]
Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 12 17:02:59.159 dbexit:
Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...
บน Ubuntu ลองสิ่งนี้:
sudo invoke-rc.d mongodb start
อาจเป็นการรวมกันของ $ PATH และปัญหาการอนุญาต
ลองทำตามขั้นตอนด้านล่าง:
อัปเดตตัวแปร $ PATH ให้ชี้ไปที่ไฟล์ MongoDB bin ของคุณ ในกรณีของฉันชงติดตั้ง MongoDB ในโฟลเดอร์นี้:
/usr/local/Cellar/mongodb/2.4.6/
ในการอัปเดตตัวแปร $ PATH ของคุณให้ทำดังนี้:
$ sudo vi /etc/paths
จากนั้นกด 'i' เพื่อแทรกข้อความใน Vi และต่อท้ายเส้นทาง MongoDB ของคุณที่ท้ายไฟล์ 'paths' และรีสตาร์ทเทอร์มินัล
/usr/local/Cellar/mongodb/2.4.6/bin
ใช้ 'Esc: w q' เพื่อบันทึกและออกจากโปรแกรมแก้ไข Vi
ใช้ echo เพื่อแสดงตัวแปรเส้นทางของคุณ:
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin
ตอนนี้ลองตรวจสอบเวอร์ชัน Mongo หากคุณติดตามแสดงว่าคุณมาถูกทางแล้ว!
$ mongo --version
MongoDB shell version: 2.4.6
ตอนนี้เราต้องสร้างไดเร็กทอรีฐานข้อมูล ฉันใช้ตำแหน่งเริ่มต้น '/ data / db' ที่แนะนำในเอกสาร MongoDB ฉันยังสร้างไดเร็กทอรีบันทึกเพื่อหลีกเลี่ยงปัญหาการอนุญาตในขณะที่ Mongo พยายามสร้างบันทึกใด ๆ เปลี่ยนความเป็นเจ้าของและจะได้งาน
$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data
ตอนนี้เราจะสร้างไฟล์กำหนดค่าเริ่มต้นสำหรับ MongoDB เพื่อให้เป็นครั้งแรกที่เราเรียกใช้คำสั่ง 'mongod' ตอนนี้ฉันต้องการที่จะชี้ให้เห็นว่า 'mongod' จะเริ่มบริการซึ่งจะรับฟังการเชื่อมต่อข้อมูลขาเข้า สิ่งนี้คล้ายกับการดำเนินการ '$ service mysqld start' มาเริ่มสร้างไฟล์ config กันเลย โปรดทราบว่าฉันได้สร้างไฟล์กำหนดค่าพื้นฐานแล้ว อย่างไรก็ตามคุณสามารถเพิ่มตัวแปรอื่น ๆ เพื่อกำหนดค่า MongoDB ได้ นี่เป็นครั้งแรกที่ฉันเล่นกับ MongoDB ดังนั้นฉันเพิ่งรู้มากพอ ๆ กับที่อ่านบนเอกสาร MongoDB ฉันสร้าง 'mongodb.conf'
$ sudo vi /etc/mongodb.conf
เพิ่มสิ่งต่อไปนี้:
fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true
โปรดทราบว่าพอร์ตเริ่มต้นสำหรับเซิร์ฟเวอร์ MongoDB คือ 27017 ใช้เส้นทางของคุณเองสำหรับ dbpath และ logpath ที่คุณสร้างในขั้นตอนที่ - 5 อย่าลืมปิดและบันทึกไฟล์ conf
ตอนนี้เราพร้อมที่จะเริ่มบริการ MongoDB แล้ว เปิด Terminal สองอินสแตนซ์ใน Terminal 1 ให้พิมพ์:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting
หากคุณได้รับข้อความข้างต้นแสดงว่าคุณได้เริ่มใช้บริการ Mongod เรียบร้อยแล้ว
ตอนนี้ในการเชื่อมต่อใน Terminal 2 พิมพ์ดังต่อไปนี้:
$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>
ไม่สนใจคำเตือน แต่คุณเชื่อมต่อกับฐานข้อมูล 'ทดสอบ' สำเร็จแล้ว! เย็น!
นั่นคือทั้งหมด ฉันใช้วิธีนี้เมื่อฉันพยายามติดตั้งสำเนาของ MongoDB บน Mac เป็นครั้งแรก ดูว่าสิ่งนี้ช่วยคุณได้หรือไม่
สำหรับโพสต์รายละเอียดที่คุณสามารถไปที่นี่ - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094
ฉันหวังว่ามันจะช่วยได้!
ไชโย Chinmay
ฉันแก้ไขปัญหานี้บน ubuntu 12.04 โดยทำตามขั้นตอน:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) ฉันลบ mongo แล้วติดตั้งอีกครั้ง
4) sudo service mongodb restart
และทุกอย่างเรียบร้อยดี