在Ubuntu 18.04 LTS上安装mysql 5.6

我无法在新安装的Ubuntu 18.04上安装mySql 5.6 我尝试过很多链接的解决方案( link1 link2 …),但根本没有成功。

我安装了5.7 ,但由于客户的要求 ,无论如何我都需要这样做。 几乎没有什么变化使它与5.6兼容而没有在大约5个正在运行的项目(涉及7个开发人员)中进行代码更改,这是在我使用带有mysql 5.6的Ubuntu 17.10时启动的。

更新:艾哈迈德提出了一个手动方法,这是一个很好的解决方案,但我希望有人知道这样做Ubuntu的方式,以便更多的人将受益。

在我成功之前,我尝试了很多方法。

有效的方法

唯一有效的方法是从MySQL网站下载deb-bundble.tar并逐个安装软件包。 我按照以下步骤操作:

  • 转到MySQL 5.6下载页面: https : //dev.mysql.com/downloads/mysql/5.6.html#downloads
  • 在OS选项中,选择“Ubuntu 14.04 64-bit”
  • 下载deb-bundle,一个名为mysql-server_5.6.40-1ubuntu14.04_amd64.deb-bundle.tar ,通常,它是第一个选项
  • 使用以下方法解压缩包: tar -xf mysql-server_5.6.40-1ubuntu14.04_amd64.deb-bundle.tar
    • tar包含多个deb包,包括mysql-servermysql-community-server ,…等
    • 然后我尝试使用: sudo dpkg -i 逐个安装它们,但是我根据触发的错误消息按照顺序执行,例如:我首先尝试过: sudo dpkg -i mysql-server_5.6.40-1ubuntu14.04_amd64.deb ,它失败了,因为它需要先安装mysql-community-server_5.6.40-1ubuntu14.04_amd64.deb ,依此类推
    • 一些软件包安装成功,有些产生了错误,在我最后一次尝试sudo dpkg -i mysql-server_5.6.40-1ubuntu14.04_amd64.deb后出现了一些错误,我拼命尝试: sudo apt-get install -f它抓住了缺失的依赖关系,并且成功安装,启动并运行了MySQL Server 5.6

方法不起作用

使用Trusty Universal Repo

值得一提的是,我首先尝试过在Ubuntu 16.04中使用的相同方法,即添加“可信任宇宙”repo并尝试安装mysql-server-5.6,即我遵循以下方法:

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

这种方法不起作用。 它失败了,因为存在无法安装的依赖项initscripts 。 它似乎已在Ubuntu 16.04之后被替换。 安装它的替代品: util-util-linux sysvinit-utils也没有帮助。

使用MySQL apt配置包

我也尝试使用我从这个repo下载的MySQL配置包( mysql-apt-config_0.7.3-1_all.deb ): https : mysql-apt-config_0.7.3-1_all.deb并通过以下方式安装: sudo dpkg -i mysql-apt-config_0.7.3-1_all.deb 。 它当然不承认Ubuntu 18.04(仿生),因此,我表现得好像它是xenial并将MySQL服务器版本配置为5.6,然后我尝试使用以下命令检查哪个MySQL版本可用于安装: apt-cache policy mysql-server但也没有工作,我仍然有5.6以后的版本。

最后的说明

虽然最后两种方法不起作用,但它们可能通过提供一些软件包或配置来为第一种方法的成功做出贡献,老实说我不知道​​。

当我变得毫无希望任何方法都可行时,我考虑从源代码编译和安装它,我开始努力(我安装了构建必需品并创建了用户组和用户)并且在我偶然发现时即将抓取源代码事实certificate,deb-bundle是富有成效的,是我上面描述的成功方法。

MariaDB是MySQL的完全兼容的替代品,可在默认的Ubuntu存储库中使用。 它可以安装:

 sudo apt update sudo apt install mariadb-server-10.0 mariadb-client-10.0 

设置检测所有现有的MySQL数据库并导入它们,但为了以防万一,请阅读此答案 ,并准备好备份。

关于MariaDB的注释

问题是关于MySQL , MariaDB

是MySQL的增强型替代品

并与使用MySQL的所有*应用程序兼容。 它侦听相同的端口,所有命令都是相同的(即mysqlmysqldump等)。

*好吧,你可能会发现一些非常老的应用程序无法与MariaDB一起使用,但是它的可能性非常小。

也许有点offtopic,但我喜欢解决这个问题的方法是使用docker。

你可以安装docker和docker-compose。 创建一个docker-compose.yml文件,例如/home/whatever/mysql-5.6,如下所示。

 services: db: image: mysql:5.6 restart: always environment: MYSQL_ROOT_PASSWORD: example 

然后做docker-compose up -d

或者你可以安装docker-ce,并使用以下命令执行图像的“dryrun”,以便检查它。

 docker run -it mysql:5.6 /bin/bash 

这里有mysql Dockerfiles的完整解释。 https://hub.docker.com/_/mysql/

您可以从Mysql apt存储库手动下载并安装Mysql 5.6 debian软件包。