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

Могу ли я хранить файл конфигурации MySql не в папке / etc? Как?

Я новичок в Linux. просто изучаю разработку php / mysql. В Windows я держал каталоги Apache, PHP, Mysql, PgSQL в одной папке на ОТДЕЛЬНОМ ДИСКЕ, например:

D:\server
    \mysql
    \apache
    \php

Итак - если бы я переустановил Windows - все, что мне нужно было бы сделать, это запустить службы mysql и httpd - и все. быстро и просто. То же, что и XAMPP, за исключением того, что мне не нужны 20 дополнительных приложений, которые вам предоставляет xammp.

Я бы хотел сделать то же самое в Ubuntu. Поэтому я бы держал apache, mysql, php на отдельном диске и запускал их, когда захочу (init.d или upstart, чтобы запускать их автоматически).

итак - структура будет:

/media/storage/server
/media/storage/server/mysql
/media/storage/server/apache
/media/storage/server/php

Я все скомпилировал и настроил, кроме файлов конфигурации.

Проблема в:

Я также хочу, чтобы все файлы конфигурации были в одном месте. Я имею в виду http.conf -в папке apache. my.cnf - в папке mysql

итак - Вопрос: Как заставить MySQL загружать файл конфигурации не из /etc/my.cnf, а из другого произвольного места. нигде не нашел эту информацию .. :(

важный:

1) это не рабочий сервер! Это просто для тех, кто изучает веб-разработку и Linux и не хочет постоянно переустанавливать и перенастраивать сервер при смене дистрибутива. 2) Я знаю, что это противоречит иерархическим стандартам Linux. 3) Теперь я о ламповом сервере Ubuntu tasksel и / или простоте XAMPP :)

Самый простой способ достичь своих целей - это, вероятно, символические ссылки. Позвольте пакету создать свой файл конфигурации везде, где он хочет их создать. Как только это будет сделано, просто переместите файлы конфигурации туда, где вы хотите, затем создайте символическую ссылку из того места, где пакет ожидает ее, в папку, в которой вы хотите сохранить конфигурацию.

Итак, если вы установили официальный пакет сервера mysql, вы бы сделали что-то вроде этого.

rsync -av /etc/mysql/ /media/storage/server/mysql/ #copy mysql config
rm -r /etc/mysql                                   # remove original folder
ln -s /media/storage/server/mysql /etc/mysql/      # create symlink to new folder

Если вы можете использовать один дистрибутив для запуска своего веб-стека, вы можете облегчить себе задачу, настроив среда chroot. В основном chroot позволяет вам иметь папку с автономным приложением и всеми необходимыми вспомогательными библиотеками. Если у вас одна и та же архитектура в нескольких местах, вы сможете запускать что-то из этого chroot в любой системе. Создание chroot Debian / Ubuntu - это очень просто Я иногда использую его, чтобы иметь возможность иметь в моей системе несколько разных версий дистрибутива для тестирования.

Читать http://dev.mysql.com/doc/refman/5.1/en/option-files.html после

В Unix, Linux и Mac OS X программы MySQL считывают параметры запуска из следующих файлов в указанном порядке (первыми используются верхние элементы).