(请在本文末尾查看该问题的解决方案)
我有一台新安装的服务器,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 的建议操作后,问题解决了。