到目前为止,我还没有指定MongoDB数据目录,并且只有一个30gb的主分区。

我刚把空间用完了,又加了一个新硬盘。我如何传输我的数据(显然是在/var/lib/mongodb/中)并配置MongoDB,以便所有内容都在新磁盘上运行而不影响我现有的安装?


当前回答

解决它在2分钟停机时间:) 只需移动文件夹,添加符号链接,然后调整权限。

sudo service mongod stop
sudo mv mongodb /new/disk/mongodb/
sudo ln -s /new/disk/mongodb/ /var/lib/mongodb
sudo chown mongodb:mongodb /new/disk/mongodb/
sudo service mongod start

# test if mongodb user can access new location:
sudo -u mongodb -s cd /new/disk/mongodb/
# resolve other permissions issues if necessary
sudo usermod -a -G <newdisk_grp> mongodb

其他回答

如果没有,在MongoDB文件夹中创建一个名为mongo .cfg的文件。在我的例子中: C:\Users\ ivanbtrujillo \ MongoDB

然后,用记事本编辑mongo .cfg,并添加如下一行(我们的自定义dbpath):

dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db

在这个文件中,您还应该指定日志路径。我的mongo .cfg文件是:

logpath=C:\Users\ivanbtrujillo\MongoDB\log\mongo.log
dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db

如果您使用mongoDB作为windows服务,您必须更改此密钥并指定mongo .cfg文件。

使用实例将mongodb安装为windows服务。

**"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" –install**

打开regedit.exe,进入如下路径:

HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\services\MongoDB

MongoDB服务不工作,我们必须编辑ImagePath键,删除其内容并放入以下内容:

**"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" 
--logpath="C:\Users\ivanbtrujillo\MongoDB\log\mongo.log" –service**

我们指示mongo它的配置文件和它的日志路径。

然后,当初始化mongodb服务时,它就工作了。

下面是在windows中安装mongoDB的完整教程: http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/

希望能有所帮助,

在debian/ubuntu中,你需要编辑/etc/init.d / mongodb脚本。 实际上,这个文件应该从/etc/mongodb.conf中提取设置 但它似乎没有拉出默认目录(可能是一个错误)

这是一个有点hack,但添加这些到脚本使它正确启动:

add:

DBDIR=/database/mongodb

变化:

DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF run"}

to:

DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --dbpath $DBDIR --config $CONF run"}

解决它在2分钟停机时间:) 只需移动文件夹,添加符号链接,然后调整权限。

sudo service mongod stop
sudo mv mongodb /new/disk/mongodb/
sudo ln -s /new/disk/mongodb/ /var/lib/mongodb
sudo chown mongodb:mongodb /new/disk/mongodb/
sudo service mongod start

# test if mongodb user can access new location:
sudo -u mongodb -s cd /new/disk/mongodb/
# resolve other permissions issues if necessary
sudo usermod -a -G <newdisk_grp> mongodb

如果在Ubuntu 12.04中通过apt-get安装,不要忘记删除-R mongodb:nogroup /path/to/new/directory。另外,修改/etc/mongodb.conf的配置。

提醒一下,mongodb-10gen包现在是通过upstart启动的,所以配置脚本在/etc/init/mongodb.conf中

我刚刚浏览了一下,希望谷歌人会觉得有用:)

如果您想更改默认路径,下面的命令将为您工作。 只需在mongodb的bin目录中输入这个。

mongod --dbpath=yourdirectory\data\db

如果您也想移动现有数据,那么只需在执行命令之前将所有文件夹从现有data\db目录复制到新目录。

同时停止正在运行的mongodb服务。