您已将 MariaDB 与 MySQL 混合在一起。

您已将 MariaDB 与 MySQL 混合在一起。

我在 Ubuntu 18.04 上,我正在安装 Mysql,

我输入:

sudo apt-get install mysql-server

我收到了这个,但最后有一个错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
mysql-server is already the newest version (5.7.28-0ubuntu0.18.04.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 191: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-5.7 (--configure):
 installed mysql-server-5.7 package post-installation script subprocess returned error exit status 127
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

附加信息:

当我输入:apt-cache policy mysql-common 我得到这样的回复:

mysql-common:
  Installed: 1:10.4.11+maria~bionic
  Candidate: 1:10.4.11+maria~bionic
  Version table:
 *** 1:10.4.11+maria~bionic 100
        100 /var/lib/dpkg/status
     1:10.3.21+maria~bionic 500
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
     1:10.3.20+maria~bionic 500
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
        500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
        500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
     1:10.3.14+maria~bionic 500
        500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main ppc64el Packages
        500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main amd64 Packages
        500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main arm64 Packages
     5.8+1.0.4 500
        500 http://fr.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        500 http://fr.archive.ubuntu.com/ubuntu bionic/main i386 Packages

我已经尝试了很多解决方案,从卸载 mysql、安装 mariadb、在 stackOverflow 上看到不同的解决方案......但没有准确地指出错误。

真的很感谢您的帮助,我已经被这个问题困扰了一段时间了......

答案1

您已将 MariaDB 与 MySQL 混合在一起。

见证输出apt-cache policy mysql-common

        500http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu仿生/主要 amd64 软件包
……
        500http://fr.archive.ubuntu.com/ubuntu仿生/主要 amd64 软件包

他们俩都有一个mysql-common包裹。如您所见,MariaDB(注意+maria版本字符串)来自第三方 MariaDB 存储库,MySQL 则来自 Ubuntu 软件包存储库。

不幸的是,包裹的内容是不一样。此外,MySQL的安装依赖于MySQLmysql-common包的一部分该软件包的 MariaDB 版本不具有, 尤其/usr/share/mysql-common/configure-symlinks程序,它为/etc/mysql/my.cnf.

这已阻止 MySQLmysql-server-5.7包执行安装的最后一步,即“配置”步骤。

您需要卸载该软件包的第三方 MariaDB 版本mysql-common,并安装(并配置)来自 Ubuntu 存储库的 MySQL 版本。然后包的“配置”步骤mysql-server-5.7将起作用。

您可以通过选择正确的 in 版本mysql-common(例如)aptitude并安装它来完成此操作。但实现这一目标的最简单、最干净的方法可能是:

  • sources.list从您的和中删除第三方 MariaDB 存储库的所有痕迹sources.list.d/
  • 清除所有孤立的 MariaDB 包。
  • 再次安装 MySQLmysql-server-5.7及其依赖项。

下一步将解决您的my.cnf文件中由此来回引起的问题,这些问题可能会出现,并且是下一个mysql-server-5.7无法完成安装的 原因。位于 Ubuntu 发行说明中。

进一步阅读

  • MySQL 5.7“。 Ubuntu 16.04 LTS 发行说明。典范。 2016.wiki.ubuntu.com。

答案2

注意:如果端口 (3306) 被其他应用程序使用,也可能会发生此错误。就我而言,我有一个运行 mysql 的 docker 容器,它使用 3306 端口,因此我的本地 mysql 安装无法配置。

$ sudo netstat -nltp | grep LISTEN | grep 3306
$ sudo netstat -nltp | grep LISTEN | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1017033/docker-prox 

sudo apt purge --auto-remove mysql*
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql*

sudo apt install mysql-client-8.0 mysql-server-8.0 --fix-broken -y

相关内容