在Ubuntu 16.04上安装MySql 5.6


39

看来Ubuntu 16.04随附MySQL 5.7,但是我需要安装5.6。

当我尝试显式安装它时sudo apt-get install mysql-server-5.6,出现以下错误:

Package mysql-server-5.6 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  mysql-community-server:i386 mysql-common:i386 mysql-community-server mysql-common percona-xtradb-cluster-server-5.6:i386 percona-server-server-5.6:i386 mysql-testsuite-5.7:i386
  mariadb-server-10.0:i386 percona-xtradb-cluster-server-5.6 percona-server-server-5.6 mysql-testsuite-5.7 mariadb-server-10.0 mysql-server-core-5.7:i386 mysql-server-5.7:i386 mysql-server-core-5.7
  mysql-server-5.7

有什么方法可以安装5.6吗?


那个mysql 5.7.12是RAM hog。
Dibs

Answers:


68

我使用以下方法:

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6 mysql-client-5.6

如果在执行最后一条命令的过程中发生错误,请查看此答案的注释部分。


10
您可能需要,sudo rm /var/lib/mysql/debian-5.7.flag否则它会中止Sub-process /usr/bin/dpkg returned an error code (1)
xxjjnn

2
mysql服务无法正常启动。使用“ systemctl status mysql.service”,我得到“无法启动LSB:启动和停止mysql数据库服务器守护程序”。这是因为Trusty回购使用upstart,而5.7使用systemd吗?
jowan sebastian

1
@jowansebastian-您是否知道为什么会这样?我有一个类似的错误。
Barrie Reader

@BarrieReader不好意思,我为正在做的事情创建了一个centos VM,并使其正常运行。
jowan sebastian

+1。您是否知道是否可以安装特定版本的MySQL 5.6(如5.6.35)?
vphilipnyc

9

看来我设法做到了。

  1. 软件与更新 / 其他软件中添加的14.04存储库:

    deb http://archive.ubuntu.com/ubuntu trusty main
    
  2. 安装了mysql客户端和服务器:

    sudo apt install mysql-server-5.6
    sudo apt install mysql-client-5.6
    

更新:安装5.6之前,请确保没有其他mysql软件包存在:

dpkg -l | grep mysql -返回mysql软件包列表。

使用apt-get purge <package name>清除它们。

来源: 16.04升级中断了mysql-server


1
好的解决方案,但是为什么需要5.6而不是5.7?
Uwe Burger

5
5.7不向后兼容。我正在处理的应用程序的某些SQL失败...
Tarlog

2
你遇到了什么错误?我怀疑这是由于ONLY_FULL_GROUP_BY标志在MySQL 5.7中默认为“ on”。将其设置为关闭,您可能会满意。
Jaydee

目前我不记得详细信息,我在大约两个月前尝试过。如果我没记错的话,那是关于一些日期的处理。也许解析日期。
Tarlog

5.7实际上强制执行表模式
Richard Haven16年

8

我遇到了同样的问题,并且执行了以下简单的步骤:

 sudo apt-get install software-properties-common
 $ sudo add-apt-repository -y ppa:ondrej/mysql-5.6
 $ sudo apt-get update
 $ sudo apt-get install mysql-server-5.6

解决方案为我干杯!


除此解决方案之外:您必须首先删除这些文件夹:/etc/mysql/ /var/lib/mysql /var/log/mysql /var/lib/mysql-filters /var/lib/mysql-keyring和此文件:/var/lib/mysql/debian-5.7.flag

3
引用ondrej:“不要使用,已损坏”。在此处查看launchpad.net/~ondrej
Fractalf

3
dpkg --force-depends -P `dpkg -l |awk '/mysql/{print $2}'`

rm -r /etc/mysql/

apt-get install mysql-server mysql-client

1

MySQL开发人员在其自己的存储库中提供MySQL 5.6的Xenial软件包,因此这比安装正式的Ubuntu Trusty软件包更可取,因为通常最好安装为您的Ubuntu版本创建的软件包。

如果您已经拥有MySQL Server软件包,则应首先将其卸载;只需卸载所显示的所有内容dpkg -l | grep mysql-server

只需mysql-apt-config在上一个链接中下载并安装DEB软件包即可。在安装过程中,它将询问您想要哪个版本,因此可以选择5.6。软件包安装完成后,sudo apt update && sudo apt install mysql-server-5.6将安装MySQL Server 5.6。


3
这不起作用,没有5.6版本选项,只有5.7
Frodik '17

5
的确,自从写了这个答案以来,似乎已经从mysql-apt-config软件包中删除了MySQL 5.6支持,这很奇怪,因为它仍在链接页面上列为受支持...
fkraiem

1

我遇到了同样的问题,并且尝试了很多选择。而且我有很多问题libdbd-mysql-perl; 系统说不会安装该库。

因此,我想使用Aptitude安装它,以安装软件包并更正所有依赖项。

如果您没有能力,可以这样获得:sudo apt-get install aptitude

首先,您需要卸载现有的mysql。接下来,您需要安装所需的软件包。

sudo aptitude install mysql-server-5.6

才能给您很多选择,该怎么做。第一种选择是保留实际的包装。因此,按(N)o直到找到说降级下一个软件包的选项:

libmysqlclient20 [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.7.13-0ubuntu0.16
mysql-common [5.7.14-1ubuntu16.04 (<NULL>, now) -> 5.6.30-1+deb.sury.org

然后按(Y)es,并且该功能将安装mysql-server-5.6。您应该接受以下选项:

在此处输入图片说明

如果之后系统无法连接到mysql服务器,则需要重新启动计算机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.