Время от времени я терял свой файл конфигурации "/etc/mysql/my.cnf" и хочу его восстановить. Файл принадлежит пакету mysql-common
который необходим для некоторых жизненно важных функций, поэтому я не могу просто purge && install
it: зависимости также будут удалены (или, если я могу временно игнорировать их, они не будут работать).
Есть ли способ восстановить файл конфигурации из пакета без отключенияar
-загрузка файла пакета?
dpkg-reconfigure mysql-common
не восстанавливал.
dpkg -i --force-confmiss mysql-common.deb
воссоздаст любые отсутствующие файлы конфигурации, т.е. /etc/mysql/my.cnf
в твоем случае.
Ничего из вышеперечисленного у меня не сработало - возможно, устарело - в любом случае я нашел это решение:
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
В Debian Squeeze - по крайней мере - мы также можем сделать это таким образом, после su
- или sudo
для Ubuntu -
aptitude install -o Dpkg::Options::=--force-confmiss mysql-server
Это позаботится о зависимостях mysql-server
и сбросить все недостающие файлы conf лота, включая mysql-common
. Будет предложено сохранить или сбросить конфликтующие (оставшиеся) файлы.
К сожалению, есть ошибка в способности, и
aptitude purge -o Dpkg::Options::=--force-all mysql-server
не будет работать. Поэтому мы должны делать это один за другим с
dpkg --force-all --purge mysql-common mysql-server mysql-client …
Это будет удалить любой файл конфигурации, оригинальный или измененный, но кастомные файлы будет сохранено с сообщением на экране. Отметим, кстати, что dpkg
также признает --force-confnew
и --force-confold
параметры.
Получить mysql-server
Список зависимостей распечатывается на экране:
aptitude --simulate remove mysql-server
Вы можете найти конфигурационные файлы mysql по умолчанию в /usr/share/doc/mysql-server-5.0/examples/
или похожие. Это может быть все, что вам нужно, если у вас не включены какие-то действительно особые / эзотерические конфигурации.
В моем /etc/mysql/
каталог, у меня есть my.cnf.orig
файл, который содержит исходное содержимое my.cnf
.
Я не уверен где /etc/mysql/my.cnf.orig
пришел из - то есть я создал его, или это сделала установка mysql. Я помню, как однажды проверял, что это был точно так же, как my.cnf
Если у вас есть такая вещь, и нет my.cnf
вы можете скопировать одно в другое.
sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf
В любом случае это простой текстовый файл размером 3897 байт, который можно скопировать и вставить из общего файла конфигурации Mysql.
Это будет хорошая идея как только вы восстановите ваш /etc/mysql/my.cnf
чтобы сделать копию, чтобы вы могли легко восстановить ее в будущем.
Вам нужно переустановить mysql-common с помощью этой команды:apt-get install --reinstall mysql-common
Похоже, некоторые другие решения не работают если файлы конфигурации пакета управляются с участием ucf
.
В этом случае вы можете использовать:
UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]