无法使用 apt-get 在 Debian 6 服务器上升级 mySql

sim*_*lis 1 debian apt mysql5.5

我运行 Debian 6 服务器并使用它来托管十几个基于 LAMP 的网站。我将其配置为在有软件更新可用时通过电子邮件发送给我,今天早上我收到了 6 个与 mySql 相关的新可用更新的通知:

mysql-server, mysql-client, mysql-common

和其他一些依赖项。我试图运行

apt-get 更新 apt-get 升级

一切顺利,直到升级过程遇到mysql-client。我得到的错误如下:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be upgraded:
   mysql-client-5.5
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,772 kB of archives.
After this operation, 7,049 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Reading changelogs... Done

(Reading database ... 84121 files and directories currently installed.)
Preparing to replace mysql-client-5.5 5.5.38-1~dotdeb.0 (using .../mysql-client-5.5_5.5.46-0+deb6u1_amd64.deb) ...

Unpacking replacement mysql-client-5.5 ...
dpkg: error processing /var/cache/apt/archives/mysql-client-5.5_5.5.46-0+deb6u1_amd64.deb (--unpack):

 trying to overwrite '/usr/share/man/man1/mysql.1.gz', which is also in package mysql-client-core-5.5 5.5.38-1~dotdeb.0
configured to not write apport reports
                                  dpkg-deb: subprocess paste killed by signal (Broken pipe)

Processing triggers for man-db ...

Errors were encountered while processing:

 /var/cache/apt/archives/mysql-client-5.5_5.5.46-0+deb6u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)

我没有足够的经验来完全理解发生了什么。我尝试按照消息的建议运行 apt-get -f install,但没有任何反应。我还尝试删除 mysql-client (想法是“我删除了这个,然后从头开始重新安装它”)但是这个操作也失败了,并出现了同样的错误。我试图清除 mysql,但系统也无法完成该操作。

目前,我重新启动了该服务,现在看起来一切正常,但是这次升级失败的问题仍然存在。

这是我在服务器上安装的所有与 mysql 相关的软件包的 grep:

~# dpkg -l | grep -i mysql
ii  libdbd-mysql-perl                     4.016-1                      Perl5 database interface to the MySQL database
ii  libmysqlclient16                      5.1.73-1+deb6u1              MySQL     database client library
ii  mysql-client                          5.5.46-0+deb6u1              MySQL database client (metapackage depending on the latest version)
ii  mysql-client-5.5                      5.5.38-1~dotdeb.0            MySQL database client binaries
ii  mysql-client-core-5.5                 5.5.38-1~dotdeb.0            MySQL database core client binaries
ii  mysql-common                          5.5.38-1~dotdeb.0            MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.5                      5.5.46-0+deb6u1              MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-server                          5.5.46-0+deb6u1              MySQL database server (metapackage depending on the latest version)
rc  mysql-server-5.1                      5.1.73-1+deb6u1              MySQL database server binaries and system database setup
iU  mysql-server-5.5                      5.5.46-0+deb6u1              MySQL database server binaries and system database setup
ii  mysql-server-core-5.5                 5.5.46-0+deb6u1              MySQL database server binaries
ii  php5-mysql                            5.4.45-1~dotdeb+6.1          MySQL module for php5
rc  php5-mysqlnd                          5.4.45-1~dotdeb+6.1          MySQL module for php5 (Native Driver)
ii  phpmyadmin                            4:3.3.7-10                   MySQL web administration tool
Run Code Online (Sandbox Code Playgroud)

添加 apt-get remove 的结果

~# apt-get remove mysql-server-5.5
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 : Depends: mysql-server-5.1 but it is not going to be installed or
                         mysql-server-5.5 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Run Code Online (Sandbox Code Playgroud)

谁能帮我理解如何解决这个问题?提前谢谢你,西蒙娜

Gui*_*ume 6

正如@M Somerville 所解释的那样,您正在使用的 dotdeb 存储库之前安装的软件包与现在包含更新版本 mysql 5.5 的官方 debian 存储库之间存在冲突。

您需要做的是完全删除 mysql 5.5,然后安装存储库中可用的最新版本。

这为我解决了问题而没有任何数据/配置丢失:

apt-get remove mysql-client-5.5 mysql-client-core-5.5 mysql-client mysql-server-5.5 mysql-server
Run Code Online (Sandbox Code Playgroud)

然后

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

无论如何,在您尝试此操作之前,我怎么强调备份的重要性都不为过。

祝你好运