Мы переместили каталог данных mysql на другой диск, поэтому теперь /var/lib/mysql
это просто точка монтирования в другой раздел. Мы устанавливаем владельца /var/lib/mysql
каталог в mysql.mysql
.
Но каждый раз, когда мы монтируем раздел, владелец меняется на root.root
. Из-за этого мы не могли создать дополнительную базу данных MySQL.
Наша запись в fstab:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
Как изменить владельца точки монтирования на пользователя, отличного от root?
Вам необходимо изменить разрешения смонтированной файловой системы, а не точки монтирования, когда файловая система не смонтирована. Так mount /var/lib/mysql
затем chown mysql.mysql /var/lib/mysql
. Это изменит права доступа корня файловой системы MySQL DB.
Основная идея заключается в том, что необходимо изменить файловую систему, содержащую БД, а не точку монтирования, если только ее путь не имеет каких-либо проблем, например lib
может быть прочитан только root.
также
mount device mount-point -o uid=foo -o gid=foo
если группу тоже нужно сменить
Добавьте uid и gid следующим образом:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
Вы можете использовать фактические имена пользователей / групп (остерегайтесь пробелов) или числовые значения uid, gid. Я добавил rw и exec, которые могут дополнительно помочь вам предотвратить проблемы с доступом (при условии, что вы находитесь в системе разработки, а не на производственном сервере).
PS: Для еще большего доступа (при желании) добавьте ", dir_mode = 0777, file_mode = 0777"
Убедитесь, что вы изменили разрешения, когда файловая система не смонтирована - у меня никогда не получалось делать это во время монтирования.
Кроме того, вы можете добавить параметр «пользователь» в свой fstab, например:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,user 0 2
Это также должно означать, что команде монтирования (если ее нужно вызвать) не потребуются права root для монтирования этого тома. Если вы не измените свой fstab, это не помешает вам решить вашу проблему!
Я обычно делаю это в пустом отключенном каталоге
chmod 777 <directory>
Тогда сделай
chown -R mysql.mysql <directory>
Затем в / etc / fstab сделайте
<device> <directory> ext3 user,defaults 0 2
Затем используйте
mount -a
для монтирования всех файловых систем, перечисленных в / etc / fstab.
У меня это работает. Попробуйте
Если вы хотите сделать это только как часть mount
командную строку, вы можете использовать -o
переключиться и сделать:
mount device mount-point -o uid=foo
Это изменит владельца точки монтирования на пользователя foo
вместо root.