Я использую MySQL 5.5 на Ubuntu.
Там, где я ожидал, есть файл my.cnf в / etc / mysql /. Отлично!
Для установки mysql в debian рекомендуется не редактировать файл my.cnf. В файле /etc/mysql/my.cnf есть директива IncludeDir, которая позволяет искать в папке /etc/mysql/conf.d/ дополнительные файлы параметров.
Когда я помещаю этот файл сюда:
/etc/mysql/conf.d/my-local.cnf
MySQL читает файл и отменяет все в /etc/mysql/my.cnf.
Большой! :-)
Вот в чем проблема:
Я храню свою локальную копию файла /etc/mysql/conf.d/my-local.cnf в системе управления версиями и хочу периодически обновлять ее для всей команды. Итак, мое решение - создать символическую ссылку:
cd /etc/mysql/conf.d/
ln -s /path/to/my/my-local.cnf my-local.cnf
MySQL не читает эту символическую ссылку.
Я подтвердил следующее:
Подводя итог, MySQL будет читать и анализировать, когда в папке /etc/mysql/conf.d/ есть физический файл. Mysql не будет читать символическую ссылку в этой папке.
Есть идеи? Может ли это быть проблема с debian / ubuntu?
Была обозначена похожая, но нерешенная и немного другая проблема. Вот.
Это может быть вызвано apparmor, который включен для mysqld по умолчанию из ubuntu 9.0.4. Посмотри пожалуйста http://en.wikipedia.org/wiki/AppArmor .
Вы можете изменить дополнения для конкретного сайта в /etc/apparmor.d/local/. Я столкнулся с той же проблемой и отредактировал /etc/apparmor.d/local/usr.sbin.mysqld, чтобы он работал. Обратите внимание на последнюю запятую в файле политики.
# Site-specific additions and overrides for usr.sbin.mysqld.
# For more details, please see /etc/apparmor.d/local/README.
# vim:syntax=apparmor
/etc/mysql/conf.d/* rl,
@{HOMEDIRS}/** rwk,
service apparmor restart
. Не должно быть ошибок или предупреждений относительно /etc/apparmor.d/local/usr.sbin.mysqld.Apparmor ничего не знает о новом местонахождении my.cnf
Сервер MySQL следует по символической ссылке и пытается открыть место назначения. Но apparmor это отрицает.
Чтобы решить проблему, вам нужно добавить путь к my.cnf
к /etc/apparmor.d/usr.sbin.mysqld
На ум приходят некоторые возможности:
Создайте символическую ссылку в другом направлении, т.е.
/home/developer/my-local.cnf -> /etc/mysql/conf.d/my-local.cnf
Вместо этого используйте жесткую ссылку.
Ставить /etc
под контролем версий с помощью такого инструмента, как etckeeper.