gentoo 在哪裡儲存 mongodb.conf?想要更改 dbpath 位置
這似乎是一個足夠無辜的問題,但我一生都無法弄清楚從 portage 安裝後 gentoo 將 mongodb.conf 放在哪裡。文件說要查看 /etc/,但它不存在。我需要做的就是修改 dbpath 參數,讓它儲存在 /data/db 下,但它目前使用的是 /var/lib/mongodb(這很奇怪,因為它應該預設為 /data/db)
我見過的最接近的是/etc/init.d/mongodb,它具有以下配置:
start-stop-daemon --background --start --make-pidfile \ --pidfile ${MONGODB_RUN:-/var/run/mongodb}/${SVCNAME}.pid \ ${USEROPT} ${MONGODB_USER:-mongodb} \ --exec ${MONGODB_EXEC:-/usr/bin/mongod} \ -- \ --port ${MONGODB_PORT:-27017} \ --dbpath ${MONGODB_DATA:-/data/db} \ #--dbpath ${MONGODB_DATA:-/var/lib/mongodb} \ --unixSocketPrefix ${MONGODB_RUN:-/var/run/mongodb} \ --logappend --logpath /var/log/mongodb/${SVCNAME}.log \ ${MONGODB_OPTIONS} eend $? }
如您所見,我更改了 dbpath 應該指向的位置。但是,執行 ps aux | grep mongod 結果如下:
mongodb 21044 0.2 2.1 189300 22032 ? Ssl May01 0:01 /usr/bin/mongod --port 27017 --dbpath /var/lib/mongodb --unixSocketPrefix /var/run/mongodb --logappend --logpath /var/log/mongodb/mongodb.log --bind_ip 127.0.0.1 --journal
我擁有的另一個文件是 /etc/conf.d/mongodb,其中包含以下內容:
# Mongodb essentials MONGODB_EXEC="/usr/bin/mongod" MONGODB_RUN="/var/run/mongodb" MONGODB_DATA="/var/lib/mongodb" MONGODB_USER="mongodb" # Listen to specified IP, comment this to listen to all MONGODB_IP="127.0.0.1" # Listen to specified port MONGODB_PORT="27017" # Set extra options here, such as disabling the admin web server MONGODB_OPTIONS="--journal"
有人知道在哪裡正確設置 dbpath 參數,我真的很感激。
Gentoo 的 portage 下載原始碼,然後在本地編譯二進製文件,您可能想查看 portage 記憶體下載的位置,大概是
/usr/portage/distfiles/mongodb*
原始碼 tarball 中包含的任何文件。看起來您應該更改配置文件,而不是更改初始化腳本。
您提到您有一個
/etc/conf.d/mongodb
文件 - 我可以從那裡看到正在設置一個名為MONGODB_DATA的變數- 如果您將該值設置為/data/db
,那麼 init 腳本中的變數應該在啟動時正確填充。作為參考,這一行:
--dbpath ${MONGODB_DATA:-/data/db} \
意味著初始化腳本將嘗試將**–dbpath**命令行選項設置為任何內容
MONGODB_DATA
,如果沒有,則使用指定的路徑,如所示。像這樣的東西:${A_CONFIG_FILE_OPTION:-/a/default/when/config/does/not/set/the/option}
請注意——這與 mongodb 無關,甚至與 gentoo 打包無關,而是 gentoo 初始化腳本和配置文件。
更全面的 mongodb 配置文件指南(不是 gentoo 的配置文件!)可以在這裡找到:http ://www.mongodb.org/display/DOCS/File+Based+Configuration