我偶尔会丢失我的configuration文件“/etc/mysql/my.cnf”,并想恢复它。 该文件属于包mysql-common
,这是一些重要function所需要的,所以我不能只是purge && install
它:依赖关系也将被卸载(或者如果我可以暂时忽略它们,它们将不会工作)。
有没有办法从软件包中恢复configuration文件而不用取出软件包文件?
dpkg-reconfigure mysql-common
没有恢复它。
dpkg -i --force-confmiss mysql-common.deb
会重新创build任何缺less的configuration文件,例如dpkg -i --force-confmiss mysql-common.deb
。
在Debian Squeeze中 – 至less,我们也可以这样做, su
– sudo
之后 –
aptitude install -o Dpkg::Options::=--force-confmiss mysql-server
这将关心mysql-server
的依赖关系,并重置所有丢失的lot文件,包括mysql-common
。 冲突(剩余)文件将被提示保留或重置。
不幸的是, 在能力上有一个缺陷
aptitude purge -o Dpkg::Options::=--force-all mysql-server
将无法工作 。 所以我们必须一个接一个地做
dpkg --force-all --purge mysql-common mysql-server mysql-client …
这将删除任何configuration文件 ,原始或修改, 但自定义文件将被保留在屏幕上的消息。 请注意,顺便说一下,该dpkg
还可以识别--force-confnew
和--force-confold
选项。
在屏幕上打印mysql-server
dependencies的列表:
aptitude --simulate remove mysql-server
以上都没有为我工作 – 也许过时 – 无论如何,我发现这个解决scheme:
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
你可以在/usr/share/doc/mysql-server-5.0/examples/
或类似的地方find默认的mysqlconfiguration文件。 这可能是你需要的一切,除非你有一些真正的特殊/深奥的configuration启用。
在我的/etc/mysql/
目录中,我有一个my.cnf.orig
文件,其中包含my.cnf
的原始内容。
我不知道/etc/mysql/my.cnf.orig
是从哪里来的 – 也就是说, 我创build了它还是安装了mysql。 我记得一次检查和my.cnf
完全一样
如果你有这样的事情, 没有 my.cnf
你可以复制到另一个。
sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf
无论如何,这是一个3897字节的简单文本文件,您可以从通用的Mysqlconfiguration文件复制和粘贴。
一旦你恢复你的/etc/mysql/my.cnf
来创build一个副本,这将是一个好主意,所以你可以在以后轻松地恢复它。
你需要用这个命令重新安装mysql-common: apt-get install --reinstall mysql-common
如果包的configuration文件是用ucf
来pipe理的话 ,其他一些解决scheme将ucf
。
在这种情况下,您可以使用:
UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]