环境 ubuntu16.04,项目使用 mongodb,由于数据量较大,想把数据库保存到其他目录,修改如下:
默认的数据存储目录是/var/lib/mongodb,假设我们的目的路径是/home/mongodb。
关闭数据库:
sudo service mongod stop
在配置文件中将 storage.dbPath 项设置为目的路径,修改后如下:
storage:
dbPath: /home/mongodb
将原目录下的文件复制到新目录中:
sudo cp -r /var/lib/mongodb/* /home/mongodb/
将 mongod.lock 文件删除后启动数据库:
sudo rm /home/mongodb/mongod.lock
sudo service mongod start
看起来一切都是那么美好~~~~
查看启动状态:
sudo service mongod status
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2018-03-20 09:35:41 CST; 4s ago
Docs: https://docs.mongodb.org/manual
Process: 17283 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=100)
Main PID: 17283 (code=exited, status=100)
Mar 20 09:35:41 smart systemd[1]: Started High-performance, schema-free document-oriented database.
Mar 20 09:35:41 smart systemd[1]: mongod.service: Main process exited, code=exited, status=100/n/a
Mar 20 09:35:41 smart systemd[1]: mongod.service: Unit entered failed state.
Mar 20 09:35:41 smart systemd[1]: mongod.service: Failed with result 'exit-code'.
那么问题来了,为什么会启动失败呢? 通过查询日志文件得知:
Attempted to create a lock file on a read-only directory: /home/mongodb, terminating
查看/home/mongodb
的权限
drwxr-xr-x 4 root root 4.0K Mar 20 10:55 mongodb
这里的文件所属者不正确,mongodb
这个目录的所有者必须是 mongodb,使用以下命令修改
# /home
sudo chown -R mongodb:mongodb *
修改后权限为
drwxr-xr-x 4 mongodb mongodb 4.0K Mar 20 10:55 mongodb
重启服务,大功告成。