如何重新安装损坏的mysql包

Bar*_*klı 4 mysql debian

试图修复损坏的 mysql 安装,这是在从 debian 6.0 升级到 7.0 之后发生的。我的 /etc/apt/sources.list 中有 dotdeb.org 包。

root@ginger:/var/log/mysql# apt-get install mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 mysql-server-5.5 : Depends: mysql-client-5.5 (>= 5.5.31+dfsg-0+wheezy1) but 5.5.30-1~dotdeb.0 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Run Code Online (Sandbox Code Playgroud)

运行 apt-get -f install 结果:

root@ginger:/var/log/mysql# apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  libfont-freetype-perl libfontenc1 libgmp3c2 libgsf-1-114 libgsf-1-common libpython2.6 libxcb-render-util0
  libxfont1 mysql-client-core-5.5 xfonts-encodings xfonts-utils
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  mysql-client-5.5
Suggested packages:
  libterm-readkey-perl
The following packages will be upgraded:
  mysql-client-5.5
1 upgraded, 0 newly installed, 0 to remove and 141 not upgraded.
178 not fully installed or removed.
Need to get 1,923 kB of archives.
After this operation, 6,752 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.us.debian.org/debian/ wheezy/main mysql-client-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,923 kB]
Fetched 1,923 kB in 0s (2,323 kB/s)
Reading changelogs... Done
(Reading database ... 36477 files and directories currently installed.)
Preparing to replace mysql-client-5.5 5.5.30-1~dotdeb.0 (using .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Unpacking replacement mysql-client-5.5 ...
dpkg: error processing /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb (--unpack):
 trying to overwrite '/usr/bin/mysqlcheck', which is also in package mysql-client-core-5.5 5.5.30-1~dotdeb.0
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@ginger:/var/log/mysql#
Run Code Online (Sandbox Code Playgroud)

知道如何删除并全新安装 mysql 吗?

Bar*_*klı 5

首先通过以下命令获取超级用户权限。 sudo -i会给你root访问权限。

以下对我有用:

apt-get -f install -o Dpkg::Options::="--force-overwrite"
Run Code Online (Sandbox Code Playgroud)

然后是:

apt-get purge mysql\*
rm -rf /var/lib/mysql
rm -rf /etc/mysql
dpkg -l | grep -i mysql
apt-get clean
updatedb
apt-get install mysql-client-core-5.5  mysql-client-5.5 mysql-common mysql-server-5.5
Run Code Online (Sandbox Code Playgroud)

对于 MySql5.6 使用以下

apt-get install mysql-client-core-5.6 mysql-client-5.6 mysql-server-5.6
Run Code Online (Sandbox Code Playgroud)

确保备份所有数据,因为这将删除所有内容。

我在这里找到了这个解决方案