Мы переместили каталог данных 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.
Основная идея заключается в том, что файловая система, содержащая БД, должна быть изменена, а не точка монтирования, если только у ее пути нет проблем, например, 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"
Удостоверьтесь, что вы изменили разрешения, когда файловая система не смонтирована - делать это при монтировании никогда не получалось.
Кроме того, вы можете добавить опцию 'user' в ваш fstab, например:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,user 0 2
Это также должно означать, что команде mount (если она должна быть вызвана) не понадобятся привилегии 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.