Мы переместили каталог данных 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?
решение1
Вам нужно изменить разрешения смонтированной файловой системы, а не точки монтирования, когда файловая система не смонтирована. Итак mount /var/lib/mysql
, chown mysql.mysql /var/lib/mysql
. Это изменит разрешения корня файловой системы MySQL DB.
Основная идея заключается в том, что необходимо изменить файловую систему, содержащую базу данных, а не точку монтирования, если только ее путь не имеет каких-либо проблем, например, lib
может быть прочитан только пользователем root.
решение2
также
mount device mount-point -o uid=foo -o gid=foo
если группу тоже нужно изменить
решение3
Важное предупреждение (узнал из комментариев):
Флаги uid и gid работают только в файловых системах, которые не поддерживают схему разрешений Linux, например, FAT и NTFS.
Таким образом, это НЕ правильный ответ на вопрос OP, но полезный для других.
Добавьте 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"
решение4
Я обычно делаю это в пустом несмонтированном каталоге.
chmod 777 <directory>
Тогда сделай
chown -R mysql.mysql <directory>
Затем в /etc/fstab сделайте
<device> <directory> ext3 user,defaults 0 2
Тогда используйте
mount -a
для монтирования всех файловых систем, перечисленных в /etc/fstab.
Это работает для меня. Попробуйте.