Назад | Перейти на главную страницу

Папка данных MySQL в разделе Windows, смонтированная под Ubuntu, не поддерживается MySQL

Я пытаюсь смонтировать свой раздел Windows NTFS в Ubuntu 10.10, содержащий папку данных MySQL (из окон) в /media/mysql/data. В своих окнах я установил Sokkit (PHP + Apache + MySQL). В моем Ubuntu я установил Xampp, а в my.cnf я указал каталог данных на / media / mysql / data. Теперь, когда я пытаюсь запустить службу Xampp, MySQL не запускается.

Подскажите, пожалуйста, в чем может быть возможная причина?

Я использую следующую команду монтирования.

mount -t ntfs -o по умолчанию, no_root_squash / dev / sda1 / media /

Есть ли другой способ получить доступ к моему разделу Windows, кроме монтирования раздела?

Вообще говоря, это плохая идея. Программному обеспечению баз данных необходим жесткий контроль над файлами, которые они используют (по очевидным причинам). Если вы поместите файлы базы данных в NTFS в Linux, у вас возникнут проблемы.

Поддержка записи NTFS в Linux (afaik) все еще является экспериментальной. Я понятия не имею, насколько хорошо работает блокировка файлов в этой комбинации.

Я бы посоветовал экспортировать базу данных из окон, используя mysqldump или что-то в этом роде, и перестроить базу данных на стороне Linux, используя этот дамп - с данными из собственной файловой системы (ext, xfs, reiserfs, ... все, что вы считаете лучшим).

Я боролся с той же (или похожей?) Проблемой в течение нескольких дней, и для себя я нашел решение:

  1. Эта проблема:

    По какой-то причине mysql требует, чтобы его база данных принадлежала пользователю "mysql" (/etc/mysql/my.cnf предоставляет параметр "user", но изменение этого параметра на владельца смонтированного раздела ntfs ничего не изменило)

  2. Решения:

    а) прямо: Смонтируйте раздел ntfs от имени пользователя mysql - мой / etc / fstab будет выглядеть так:

    /dev/sda5  /mnt/ntfsmount/  ntfs  rw,user,auto,umask=0002,uid=121,gid=113
    

    где uid = 121 - это идентификатор пользователя mysql, а gid = 113 - идентификатор группы mysql (при необходимости используйте!)

    Меня это не удовлетворило, так как раздел содержит гораздо больше данных, чем только некоторые базы данных mysql.

    б) рекомендуется: Смонтируйте раздел ntfs с произвольными разрешениями и параметрами и «привяжите» данные mysql к отдельной точке монтирования (см. Пример выше - за исключением параметров uid и gid):

    Затем вам нужно установить "bindfs"

    sudo apt-get install bindfs
    

    Теперь, когда ваш ntfs-partion смонтирован и bindfs установлен, вам нужно добавить что-то вроде

    bindfs#/mnt/ntfsmount/mysql /mnt/mysql fuse owner=mysql,group=mysql,perms=755 0 0
    

    в ваш / etc / fstab. Это по умолчанию смонтирует базу данных mysql с соответствующими правами собственности и разрешениями в указанный каталог. Теперь ваш /etc/mysql/my.cnf должен указывать на «/ mnt / mysql / data», и ваша база данных mysql должна быть доступна после следующей перезагрузки (или монтирования / mnt / mysql и перезапуска службы mysql)

  3. Аннотации:

    Я пробовал это на Kubuntu 11.04, но я думаю, что это более общая проблема, и она должна работать с различными версиями систем, подобных debian.

    Прежде чем я разработал это решение, я поискал в Интернете и нашел совет по деактивации / деинсталляции «apparmor». Я не уверен, актуально ли это для решения б) описано выше, но я сделал это заранее. Так что если б) не работает должным образом, возможно, вы захотите удалить apparmor.

    sudo apt-get remove apparmor
    

-

Надеюсь, это будет полезно для некоторых из вас!

С уважением, Людвиг