Речь о тех файлах, которые собственно и являются базой. Обычно на сервере есть небольшой системный диск и большой диск /home. Проблема в том, что по-умолчанию файлы mysql хранятся в /var/lib, а значит на системном диске. Диск /home, когда на нем кончается место, просто ресайзится до большего размера. С системным диском так просто не поступишь, ссыкотно. Да и как-то это не правильно, база относится к проектам, а находится в системе.
Можно ли хранить базу на диске проекта?
Можно ли хранить разные базы в разных местах?
Правильно ли это?
Как это делается?
Начнем с того, чем вообще занимается сервер в целом? Что самое важное?
Кстати, не совсем корректно звучит «Проблема в том, что по-умолчанию файлы mysql хранятся в /var/lib, а значит на системном диске.»
/var может реально находиться в корне, а /var/lib — может быть примонтирован вообще куда угодно. Еще при установке системы надо разбивать разделы и точки монтирования с расчетом на предполагаемую функциональность сервера.
Если его основная задача — это MySQL.
То соответственно все файлы должны лежать в надежном и «быстром» месте. Конечно лучше если — это отдельная фс, на отдельном физическом носителе (лучше рейд). От сюда и плясать дальше.
Вопрос не про конкретный сервер, а про несколько vds, настроенных примерно одинаково. На них на всех примерно один набор ПО: php + nginx + mysql ± redis ± apache ± python.
> /var может реально находиться в корне, а /var/lib — может быть примонтирован вообще куда угодно.
Это понятно, в том и вопрос, делать так или иначе. Сейчас /var/lib системный диск, а диск с остальными файлами проекта — /home. Если сделать еще и /var/lib отдельным диском — это уже 3 диска, что вроде как ненужное усложнение.
Вообще думаю, может быть зря складываю файлы проектов в /home, может быть правильнее было выносить на отдельный диск именно /var, и в /var/www хранить сами проекты.
Ну опыт набивания шишек в свое время приучил разделять по разным томам хому, корень и раздел с проектами. Усложнением это назвать трудно, но как минимум порядок уже будет. Разные фс, нет проблем с правами для прочих юзеров и тд. Вопрос про разные носители под директории зависит больше от требований к работе сервера, его загрузке и критичности хранимых данных.
VDS — обычно делают для каждого пользователя «помойку» у него в /home/user, там и www и файлы его базы, и что угодно. А сам /home со всеми пользователями лежит отдельно от системы. Так и обслуживать проще.
Не совсем пойму, что конкретно подразумевается под «проектом», то ли это AMP?, то ли ещё что-то…
В общем удобнее, когда весь проект лежит в одном месте. И соответственно отдельное место для всех проектов в целом.
/export/home/project* — все, что относится к проекту — туда.
/export — отдельный раздел, а лучше диск.
В независимости от проектов система всегда на ходу.
А как конкретные базы перемещать в папки проекта? Для myisam еще понятно — там каждая база это папка, кладем их физически в папку с проектом, в /var/lib делаем симлинк. А с innobd что делать?