Skip to content

Instantly share code, notes, and snippets.

@satyadeepk
Forked from Voronenko/downgrademysql.md
Last active January 27, 2018 17:18
Show Gist options
  • Save satyadeepk/513376f65c54d420ed7c6fd70c757c5e to your computer and use it in GitHub Desktop.
Save satyadeepk/513376f65c54d420ed7c6fd70c757c5e to your computer and use it in GitHub Desktop.
Downgrade mysql to mysql 5.6 on Ubuntu 16.04 xenial

Install MySQL 5.6 in Ubuntu 16.04

Ubuntu 16.04 only provides packages for MySQL 5.7 which has a range of backwards compatibility issues with code written against older MySQL versions.

Oracle maintains a list of official APT repositories for MySQL 5.6, but those repositories do not yet support Ubuntu 16.04. However, the 15.10 repos will work for 16.04.

Uninstall existing mysql 5.7 if any

sudo apt remove mysql-client mysql-server libmysqlclient-dev mysql-common

Check you removed everything

sudo dpkg -l | grep mysql

Purge remainders (e.g. marked with rc) with

sudo dpkg -P <package> [<package> ...].

Download the apt_config-debian package from Oracle and install it using from https://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb

sudo dpkg -i mysql-apt-config_0.8.0-1_all.deb

Choose "MySQL 5.6" and "Ubuntu Wily" (assuming Xenial is not yet provided)

Run

sudo apt-cache policy mysql-server  

If this shows a 5.6 version, continue.

If not, check your /etc/apt/sources.list.d/mysql.list. It should look roughly like this:

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb http://repo.mysql.com/apt/ubuntu/ wily mysql-apt-config
deb http://repo.mysql.com/apt/ubuntu/ wily mysql-5.6
deb http://repo.mysql.com/apt//ubuntu/ wily mysql-tools
deb-src http://repo.mysql.com/apt/ubuntu/ wily mysql-5.6
You might have to replace "xenial" with "wily". Although you are using 16.04 (codename Xenial), Oracle currently seems to only provide 5.6 in the repos for 14.04 (codename Wiley). But those sources work for 16.04, too.

Create a file /etc/apt/preferences.d/mysql with this content

Package: *
Pin: origin "repo.mysql.com"
Pin-Priority: 999

Run

sudo apt-get update

Now recipe's run should provide

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

You should get 5.6 versions.

In order to start the service and then schedule it to automatically load during boot

sudo systemctl start mysql && sudo systemctl enable mysql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment