Bạn đang chạy từ kho lưu trữ 10gen hoặc từ repo Debian / Ubuntu mặc định? Tôi khuyên bạn nên sử dụng kho lưu trữ 10gen chính thức.
Kiểm tra liên kết này - [10gen MongoDB Cách cài đặt trên Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ub Ubuntu / . Tốt nhất là gỡ cài đặt mongodb trước đó trước khi thay đổi này, điều này cũng sẽ yêu cầu bạn sửa đổi nguồn kho lưu trữ của bạn (trong /etc/apt/source.list) nhưng điều này cũng được nêu chi tiết trong liên kết ở trên. Tôi khuyên bạn nên sử dụng upstart over sysvinit và việc xử lý được nêu trong Hướng dẫn.
Với thiết lập Ubuntu 10gen, tệp cấu hình nằm trong /etc/mongodb.conf.
Có một số cách mà bạn có thể chạy một quy trình mongod riêng biệt, một cách đơn giản là chạy nó từ cli -
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
cái nào sẽ tạo ra (sử dụng 'ps')
mongodb 2210 3.3 1.5 259012 15300 pts/0 Dl 11:48 0:00 mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001
và bạn có thể kết nối qua cli -> mongod --port 3001
Một cách khác là tạo một bản sao của /etc/mongodb.conf -
sudo cp /etc/mongodb.conf /etc/mongodbnew.conf and editing the following lines in the new file -
# mongodbnew.conf
dbpath=/var/lib/mongodbnew
#where to log
logpath=/var/log/mongodb/mongodbnew.log
port = 27018
Tôi đã thay đổi dbpath (nơi lưu trữ các tệp mongodb) từ / var / lib / mongodb thành / var / lib / mongodbnew; đường dẫn nhật ký đã thay đổi từ mongodb.log thành mongodbnew.log và cổng đã thay đổi từ mặc định 27017 thành 27018 (bạn cũng sẽ phải xóa # để bỏ dòng).
Tôi cũng đã thay đổi dòng trên cùng để phản ánh tên mới của tệp cấu hình này.
Bạn cũng sẽ phải tạo thư mục dữ liệu vì nó sẽ không tồn tại và không có nó, quá trình mongod sẽ không bắt đầu và đảm bảo rằng chủ sở hữu và nhóm là mongodb -
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
Ngoài ra, tạo và thay đổi các bản phát hành của tệp nhật ký của bạn -
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
Để bắt đầu quá trình mongod mới của bạn (trong nền) từ cli, hãy nhập
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
gửi phần sau đến màn hình -
"tất cả đầu ra sẽ đến: /var/log/mongodb/mongodbnew.log"
Kiểm tra xem các quy trình mongod đang chạy với "ps" -
sysadmin@ubuntu:/var/lib$ ps auwx | grep mongo | egrep -v 'grep|sudo'
mongodb 921 11.3 1.5 627672 15608 ? Ssl 10:56 4:30 /usr/bin/mongod --config /etc/mongodb.conf
mongodb 2137 7.8 1.5 627672 15880 pts/0 Sl 11:36 0:00 /usr/bin/mongod --config /etc/mongodbnew.conf
Để xác minh rằng bạn có thể kết nối, hãy chạy trình bao Mongo -
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
Với lsof, bây giờ bạn sẽ thấy hai quy trình mongod của mình, ràng buộc ban đầu là 27017 và quy trình mới được ràng buộc đến 27018.
$ sudo lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 921 mongodb 6u IPv4 9066 0t0 TCP *:27017 (LISTEN)
sysadmin@ubuntu:/var/lib$ sudo lsof -i :27018
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2137 mongodb 6r IPv4 11923 0t0 TCP *:27018 (LISTEN)
Để đảm bảo hai quy trình chạy khi khởi động, hãy sao chép tệp cấu hình init gốc -
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
sẽ dẫn đến hai tệp như -
$ ls -lart /etc/init/mongo*
-rw-r--r-- 1 root root 536 May 8 15:51 /etc/init/mongodb.conf
-rw-r--r-- 1 root root 554 Jun 11 11:43 /etc/init/mongodbnew.conf
Chỉnh sửa tệp mongodbnew.conf mới bằng vi hoặc bất cứ thứ gì bạn thích trông như thế này -
## Ubuntu upstart file at /etc/init/mongodbnew.conf
limit nofile 20000 20000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
mkdir -p /var/lib/mongodbnew/
mkdir -p /var/log/mongodbnew/
end script
start on runlevel [2345]
dừng lại trên runlevel [06]
script
ENABLE_MONGODB="yes"
if [ -f /etc/default/mongodbnew ]; then . /etc/default/mongodbnew; fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec /usr/bin/mongod -- --config /etc/mongodbnew.conf; fi
kịch bản kết thúc
Tôi đã thử nghiệm điều này trên Ubuntu 12.04 và nó có vẻ hoạt động tốt, kể cả sau khi khởi động lại. Tôi đã không chạy nó trong sản xuất rõ ràng. Xin lỗi, nếu có bất kỳ typo nào ở trên nhưng có rất nhiều thông tin và tôi có thể đã bỏ lỡ điều gì đó.
Cuối cùng, đây là một liên kết trên Bộ bản sao có thể giúp bạn vì nó đã xuất hiện các ví dụ về việc bắt đầu nhiều phiên bản mongod từ cli - http://www.mongodb.org/display/DOCS/Replica+set+Tutorial .