We have moved mysql data directory to another disk, so now /var/lib/mysql
is just a mount point to another partition. We set the owner of the /var/lib/mysql
directory to mysql.mysql
.
But everytime we mount the partition, the ownership changes to root.root
. Because of this, we couldn't create additional MySQL database.
Our fstab entry:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
How to change the owner of mount point to user other than root?
You need to change the permissions of the mounted filesystem, not of the mount point when the filesystem is not mounted. So
mount /var/lib/mysql
thenchown mysql.mysql /var/lib/mysql
. This will change the permissions of the root of the MySQL DB filesystem.The basic idea is that the filesystem holding the DB needs to be changed, not the mount point, unless its path has some issues, e.g.
lib
can only be read by root.also
if group need to be changed too
Important disclaimer (learned that from comments):
Thus this is NOT a correct answer to OP but helpful to others
Add uid and gid like these:
You can use actual user/groupnames (beware of spaces) or numeric uid, gid values. I added rw and exec which might further help you prevent access troubles (presuming you are on a development system, not a production server).
PS: For even more access (if desired), add ",dir_mode=0777,file_mode=0777"
Make sure you change the permissions when the filesystem is not mounted - doing it while mounted has never worked for me.
Additionly, you can add the 'user' option to your fstab, example:
This should also mean that the mount command (if it needs to be called) won't need root privileges to mount that volume. Not changing your fstab will not stop you fixing your issue though!
I usually do this on empty unmounted directory
Then do
Then in /etc/fstab do
Then use
to mount all filesystems listed in /etc/fstab.
This works for me. Give it a try
If you want to only do it as part of the
mount
command line, you can use the-o
switch and do:That will change the owner of the mount point to user
foo
instead of root.Recently I had fallen into a similar problem. And this is what I did:
In the /etc/fstab:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx /mnt/minimal_dev_env ext4 errors=remount-ro 0 2
In My Ubuntu Clipboard Extension:
Added this following COMBINED command:
sudo mount -a && sudo chown -R mysql:mysql /mnt/minimal_dev_env/mysql && sudo systemctl restart mysql && ls -la /mnt/minimal_dev_env/mysql
for mounting. And,
sudo systemctl stop mysql && sudo umount /mnt/minimal_dev_env/ && ls -la /mnt/minimal_dev_env/
for unmounting.