在 Ubuntu 16.04 中 dist-upgrade 后卸载 MariaDB

在 Ubuntu 16.04 中 dist-upgrade 后卸载 MariaDB

(请在本文末尾查看该问题的解决方案)

我有一台新安装的服务器,ubuntu 16.04.1。然后我按照 MariaDB 网站上的指南安装了 MariaDB。然后,重新启动服务器。/etc/apt/sources.list 显示 MariaDB 的下一行:

deb [arch=i386,amd64,ppc64el] http://ftp.nluug.nl/db/mariadb/repo/10.1/ubuntu xenial main

当我现在执行时apt-get update,它确实显示了 repo:

...    
    Get:6 http://ftp.nluug.nl/db/mariadb/repo/10.1/ubuntu xenial/main i386 Packages [5,580 B]
    Get:7 http://ftp.nluug.nl/db/mariadb/repo/10.1/ubuntu xenial/main amd64 Packages [5,577 B]
    Get:8 http://ftp.nluug.nl/db/mariadb/repo/10.1/ubuntu xenial/main ppc64el Packages [5,592 B]

下一步是apt-get dist-upgrade,它向我展示了很多已经过时的软件包(galera、mariadb-common……)和一些要删除的软件包(如 mariadb-server)......这很奇怪,因为我从来没有要求删除这些软件包......

The following packages were automatically installed and are no longer required:
  galera-3 iproute libcgi-fast-perl libcgi-pm-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  libjemalloc1 liblwp-mediatypes-perl libmariadbclient18 libmysqlclient18 libmysqlclient20 libterm-readkey-perl
  libtimedate-perl liburi-perl mariadb-common mysql-common socat
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  mariadb-client-10.0 mariadb-client-core-10.0 mariadb-server mariadb-server-10.0 mariadb-server-core-10.0
The following packages will be upgraded:
  mariadb-common mysql-common
2 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.

但是……为了测试会发生什么,我接受了升级。升级后,sources.list 仍然显示 Mariadb 的行,就像这篇文章开头那样。但是……当我现在执行... 时apt-get update,没有更多 mariadb 的结果(又奇怪了……)

# apt-get update
Hit:1 http://ftp.nluug.nl/db/mariadb/repo/10.1/ubuntu xenial InRelease
Hit:2 http://nl.archive.ubuntu.com/ubuntu xenial InRelease
Hit:3 http://nl.archive.ubuntu.com/ubuntu xenial-updates InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Hit:5 http://nl.archive.ubuntu.com/ubuntu xenial-backports InRelease
Fetched 94.5 kB in 0s (290 kB/s)
Reading package lists... Done

而且...由于 dist-upgrade 确实删除了 mysql-server,所以我也无法再连接到数据库。

给我留下一个大问题...我在 16.04.1 上安装的 MariaDB 发生了什么?

而且...只是为了好玩,我刚刚用命令再次安装了 mariadb-server apt-get install mariadb-server,但是...当我尝试连接到数据库时,这导致了另一个错误:

# mysql -u root -p
Enter password:
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

===我做错了什么===

经过一番努力,我发现 dist-upgrade 之前和 dist-upgrade 之后的 mariadb 版本存在差异。

事实证明,在我添加 repo 后,安装 mariadb 的自动脚本“忘记”执行了apt-get update。这导致安装了原版 10.0,而不是想要的 10.1。

然后,当您稍后进行升级时,它会发现它实际上需要 10.1,因此它会删除 10.0 版本。而且由于我就是创建这个安装 mariadb 的好脚本的人……我只能怪我自己 :-)

答案1

正如编辑的帖子中所述,问题是由于错误安装 mariadb(忘记了 apt-get 更新)引起的。安装正确的版本并按照 Sinscary 的建议操作后,问题解决了。

相关内容