Могу ли я настроить MySQL для хранения определенной базы данных в отдельном месте на диске?
Я все еще хочу, чтобы любые новые базы данных помещались в расположение по умолчанию, но есть конкретная база данных, которую я хотел бы иметь хранится в моей папке Dropbox, так что он может синхронизироваться между несколькими компьютерами.
Как я могу это сделать?
Конечно можно! Вы должны предоставить корневое разрешение . Прочтите справочные страницы ln .
MySQL хранит данные базы данных в отдельных каталогах в /var/lib/mysql
. Я думаю, сначала вы должны были сделать каталог, куда вы хотите поместить файлы выбранной базы данных. Предоставьте разрешение root, остановите MySQL deamon:
# /etc/init.d/mysql stop
Скопируйте ваши данные в новую папку:
# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir
Удалите старый каталог из файлов данных MySQL: ( Предупреждение! ВСЕГДА сначала создайте дамп SQL !!! )
# rm -R /var/lib/mysql/DATABASENAME
Создайте символическую ссылку на каталог данных MySQL: ( Обратите внимание! Сначала прочтите man-страницу ln !!! )
# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME
После того, как вы готовы, запустите MySQL:
# /etc/init.d/mysql start
Внимание! Если ваш новый каталог не доступен для чтения и чтения MySQL, это не сработает! Пример, общая проблема: вы помещаете новый каталог данных в свою домашнюю папку, ваша домашняя папка защищена от чтения другими пользователями (например, drwxrwx --- you you your dir).
Спросите, хотите ли вы узнать что-нибудь об этом методе!
Имейте в виду, что если вы используете Ubuntu, вам также необходимо добавить запись в конфигурационный файл AppArmour /etc/apparmor.d/usr.sbin.mysqld, в противном случае вы по-прежнему будете получать ошибки разрешения на запись даже при изменении права доступа к файлам и папкам.