0
votes

I am attempting to update the dbpath for mongo db. I am following the steps as below:

1) Create new directory : sudo mkdir /mnt/database/mongo

2) Change owner : sudo cp -R /var/lib/mongo/ /mnt/database/

3) Copy DB files: sudo chown mongod:mongod -R /mnt/database/mongo

4) Update mongo configuration file:

storage:

dbPath: /mnt/database/mongo

5) Restart mongod service: sudo systemctl restart mongod

The service restart command gives the following error:

Job for mongod.service failed because the control process exited with error code. See systemctl status mongod.service and journalctl -xe for details.

Logfile contents:

 I  CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid", timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/mnt/database/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2020-04-17T04:56:00.666+0000 I  STORAGE  [initandlisten] exception in initAndListen: Location28596: Unable to determine status of lock file in the data directory /mnt/database/mongo: boost::filesystem::status: Permission denied: "/mnt/database/mongo/mongod.lock", terminating

Am I missing any steps with regards to permission.

System logs: /var/log/messages systemd: Stopping MongoDB Database Server... systemd: Starting MongoDB Database Server... mongod: about to fork child process, waiting until server is ready for connections. mongod: forked process: 17968 mongod: ERROR: child process failed, exited with error number 100 mongod: To see additional information in this output, start without the "--fork" option. systemd: mongod.service: control process exited, code=exited status=100 systemd: Failed to start MongoDB Database Server. systemd: Unit mongod.service entered failed state. systemd: mongod.service failed.

Directory permissions:

/mnt : drwxr-xr-x. 6 mongod mongod mnt

/mnt/database:

drwxrwxrwx. 3 mongod mongod database

/mnt/database/mongo:

drwxrwxrwx. 4 mongod mongod mongo

Files under /mnt/database/mongo:

-rwxrwxrwx. 1 mongod mongod 20480 collection-0-1788044936069962496.wt
-rwxrwxrwx. 1 mongod mongod 36864 collection-2-1788044936069962496.wt
-rwxrwxrwx. 1 mongod mongod  4096 collection-4-1788044936069962496.wt
drwxrwxrwx. 2 mongod mongod    90 diagnostic.data
-rwxrwxrwx. 1 mongod mongod 20480 index-1-1788044936069962496.wt
-rwxrwxrwx. 1 mongod mongod 36864 index-3-1788044936069962496.wt
-rwxrwxrwx. 1 mongod mongod  4096 index-5-1788044936069962496.wt
-rwxrwxrwx. 1 mongod mongod 12288 index-6-1788044936069962496.wt
drwxrwxrwx. 2 mongod mongod   110 journal
-rwxrwxrwx. 1 mongod mongod 20480 _mdb_catalog.wt
-rwxrwxrwx. 1 mongod mongod 36864 sizeStorer.wt
-rwxrwxrwx. 1 mongod mongod   114 storage.bson
-rwxrwxrwx. 1 mongod mongod    47 WiredTiger
-rwxrwxrwx. 1 mongod mongod  4096 WiredTigerLAS.wt
-rwxrwxrwx. 1 mongod mongod    21 WiredTiger.lock
-rwxrwxrwx. 1 mongod mongod  1185 WiredTiger.turtle
-rwxrwxrwx. 1 mongod mongod 61440 WiredTiger.wt

The security context of mongodb directoreies:

ls -Z /mnt/database

drwxrwxrwx. mongod mongod unconfined_u:object_r:mnt_t:s0   mongo
1
Check the system logs to see if selinux is denying access to that directory.Joe
System log does not contain any logs to indicate issue from selinuxSanthosh
Make sure /mnt and /mnt/database have at least x permission for the mongod user. You might try to sudo or su to mongod and attempt to read the data dir.Joe
@Joe I have given complete permission for /mnt, /mnt/database directories. Updated the question with the permission set.Santhosh
Check the security context of each of those directories and files with ls -Z, also look in /var/log/audit/audit.log for relevant messagesJoe

1 Answers

1
votes

Resolved the issue executing chcon -R --reference=/var/lib/mongo /mnt/database/mongo