web-dev-qa-db-ja.com

Linux:apt-get / aptitudeを使用して構成ファイルを復元する方法?

設定ファイル "/etc/mysql/my.cnf"を失ってしまい、それを復元したい。ファイルは、いくつかの重要な機能に必要なパッケージmysql-commonに属しているため、purge && installだけではできません。依存関係もアンインストールされます(または、一時的に無視できる場合は、依存関係がなくなりますワーキング)。

パッケージファイルをun _ar- ingせずにパッケージから構成ファイルを復元する方法はありますか?

dpkg-reconfigure mysql-commonはそれを復元しませんでした。

37
kolypto

dpkg -i --force-confmiss mysql-common.debは、不足している構成ファイルを再作成します。つまり、/etc/mysql/my.cnfあなたの場合。

39
TRS-80

Debian Squeezeでは—少なくとも— su —またはUbuntuの場合はSudoの後に、この方法で行うこともできます—

aptitude install -o Dpkg::Options::=--force-confmiss mysql-server

これはmysql-serverの依存関係を考慮し、mysql-commonを含むロットのすべての欠落しているconfファイルをリセットします。競合する(残りの)ファイルは、保持またはリセットするように求められます。

残念ながら、 aptitudeのバグ があり、

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
10
Jean Montané

上記のいずれも私にとってうまくいかなかった-おそらく時代遅れ-とにかく、私はこの解決策を見つけました:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
9
Dave Hilditch

デフォルトのmysql設定ファイルは/usr/share/doc/mysql-server-5.0/examples/または同様の場所にあります。本当に特別で難解な設定を有効にしていない限り、これで十分です。

3
sybreon

他のソリューションの一部が機能しないようです パッケージの構成ファイルが管理されている場合 with ucf

この場合、以下を使用できます。

UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]

私の/etc/mysql/ディレクトリには、my.cnf.origの元のコンテンツを含むmy.cnfファイルがあります。

/etc/mysql/my.cnf.origがどこから来たのか、つまり[〜#〜] i [〜#〜]で作成されたか、mysqlのインストールで作成されたかはわかりません。それを一度にチェックしたことを覚えていますあったmy.cnfとまったく同じ

あなたがそのようなものを持っていて、そしてnomy.cnfなら、一方を他方にコピーすることができます。

Sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf

いずれにせよ、それは3897バイトの単純なテキストファイルであり、一般的なMysql構成ファイルからコピーして貼り付けることができます。

復元したら/etc/mysql/my.cnfをコピーして、後で簡単に復元できるようにすることをお勧めします。

0
pavium

次のコマンドでmysql-commonを再インストールする必要があります:apt-get install --reinstall mysql-common

0