到目前为止,我还没有指定MongoDB数据目录,并且只有一个30 GB的主分区。更改MongoDB数据存储目录
我刚用尽空间并添加了新的硬盘。如何传输我的数据(显然在/var/lib/mongodb/
中)并配置MongoDB,以便在不影响现有安装的情况下从新磁盘运行所有内容?
到目前为止,我还没有指定MongoDB数据目录,并且只有一个30 GB的主分区。更改MongoDB数据存储目录
我刚用尽空间并添加了新的硬盘。如何传输我的数据(显然在/var/lib/mongodb/
中)并配置MongoDB,以便在不影响现有安装的情况下从新磁盘运行所有内容?
将/var/lib/mongodb
的内容复制到/data/db
。您应该查找的文件应该有your_db_name.ns
和your_dbname.n
这样的名称,其中n
是一个以0开头的数字。如果在/var/lib/mongodb
下没有看到这样的文件,请在文件系统上搜索它们。
复制完成后,通过mongod
命令启动MongoDB时使用--dbpath=/data/db
。
简短的回答是,MongoDB中的参数--dbpath
将允许您控制MongoDB读取和写入数据的目录。
mongod的--dbpath在/ usr /本地/ MongoDB的数据
将开始的MongoDB,并把文件/usr/local/mongodb-data
。
根据您的分布和MongoDB的安装,也可以配置mongod.conf
文件来自动执行此操作:
# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb
官方10gen的Linux软件包(Ubuntu/Debian或CentOS/Fedora),船舶与放置在基本配置文件在/etc/mongodb.conf
中,MongoDB服务在启动时会读取它。你可以在这里做出改变。
在我的debian机器上,它是mongodb.conf,而不是mongod.conf – UpTheCreek 2012-05-07 08:20:53
我更新了'/ etc/mongodb.conf'这个解决方案。然后,在启动'mongod'后,我看到使用了'/ data/db'。为什么更新mongodb.conf不会影响mongod存储数据库的位置? (请注意,使用'--dbpath'参数工作 – 2013-10-07 13:03:18
在我的Fedora盒子上它是'/ etc/mongodb.conf'并且更新对我来说工作正常 – tuxdna 2014-02-06 18:49:07
如果通过apt-get
在Ubuntu 12.04中安装,请不要忘记chown -R mongodb:nogroup /path/to/new/directory
。另外,更改配置/etc/mongodb.conf
。
提醒一下,在mongodb-10gen
包现在通过新贵开始,所以配置脚本是/etc/init/mongodb.conf
我只是通过这个去了,希望Google员工发现它有用:)
在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
我认为这应该是答案。我总是发现符号链接是一个非常好的解决方案,我推动任何使用它们来改变配置的解决方案。 – 2014-12-15 06:22:11
可能不需要usermod你在dbpath的目录树chmod -R o + x/
我按照这些说明(在另一个磁盘上使用dbpath),我仍然得到'Permission denied:“/ var/lib/mongodb”' 这就是/home/../mongodb/mongodb/看起来像: 'drwxrwxr-x 3 mongodb mongodb 4096 oct 13 09:32 ../ drwxr-xr-x 2 mongodb nogroup 4096 oct 13 09:29 journal/ -rw ------ x 1 mongodb nogroup 67108864 sep 23 14:44 local.0 * -rw ------ x 1 mongodb nogroup 16777216 sep 23 14:44 local.ns * -rwxr-xr-x 1 mongodb mongodb 0 oct 13 09:29 mongod.lock *' – Machinerium 2016-10-13 12:55:15
在debian/ubuntu中,您需要编辑/etc/init.d/mongodb脚本。 真的,这个文件应该从/ etc/mongodb中提取设置。CONF 但它似乎并没有拉动默认目录(可能是一个错误)
这是一个黑客位的,但添加这些到脚本使其正常启动:
地址:
DBDIR=/database/mongodb
变化:
DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF run"}
到:
DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --dbpath $DBDIR --config $CONF run"}
如果要将数据库置于主目录而不是root用户该怎么办? – JesseBoyd 2016-12-26 02:20:57
如果您没有它,请在MongoDB文件夹中创建一个名为mongod.cfg的文件。在我的情况: C:\用户\ ivanbtrujillo \ MongoDB的
然后,用记事本编辑mongod.cfg并添加符合以下(我们的定制DBPATH):
dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
在这个文件中,你应该也要指定日志路径。我mongod.cfg文件是:
logpath=C:\Users\ivanbtrujillo\MongoDB\log\mongo.log
dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
如果您使用的MongoDB作为Windows服务,你必须改变这个键和E指定mongod.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它的合作nfig文件及其日志路径。
然后,当您初始化mongodb服务时,它可以正常工作。
这是一个完整的教程在Windows安装的MongoDB: http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/
希望它能帮助,
这里是我做的,希望是有帮助的其他人:
步骤:
/etc/rc.d/rc.mongod stop
,如果你用别的东西,比如systemd你应该检查你的文档如何做到这一点mkdir /mnt/database
cp -R /var/lib/mongodb/ /mnt/database/
rm -rf /var/lib/mongodb/
ln -s /mnt/database/mongodb /var/lib/mongodb
/etc/rc.d/rc.mongod start
mongo
连接到你的数据库,看看一切都很好)有没有必要告诉你,当你这样做时应该小心,特别是rm -rf
,但我认为这是做到这一点的最佳方式。
在mongod运行时,您应该永远不要试图复制数据库目录,因为可能会有写入/读取服务的服务会改变数据库的内容。
用户的mongod代替MongoDB的
须藤CHOWN的mongod:mongod的/ newlocation
你可以看到错误日志,如果服务失败: -
/var/log/mongodb/mongod.log
对于Windows 10, 如果您想将默认路径更改为以下路径--- 只需在mongodb的bin目录中输入以下命令:
mongod的--dbpath = yourdirectory \ DATA \ DB
如果你想太多移动现有的数据,那么就从现有的数据\ db目录的所有文件夹复制到新目录中执行命令之前。 也停止正在运行的现有mongodb服务。 希望它有帮助。
有没有办法让服务器重新启动时发生这种情况? – 2012-08-30 10:48:13
@JimThio你可以将此开关添加到启动mongodb的shell脚本中。通常它是/etc/init.d/mongod或/etc/init.d/mongodb。 – lobster1234 2012-09-04 21:33:03