Установите MySql 5.6 на Ubuntu 16.04

40

Похоже, что 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?

Tarlog
источник
Это MySQL 5.7.12 является оперативной памяти.
чи

Ответы:

69

Я использовал следующий подход:

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

Если во время выполнения последней команды произошла ошибка, посмотрите раздел комментариев этого ответа.

Basex
источник
10
Вам может понадобиться sudo rm /var/lib/mysql/debian-5.7.flagили это будет Sub-process /usr/bin/dpkg returned an error code (1)
прервано
2
служба mysql не запускается должным образом. используя 'systemctl status mysql.service', я получаю 'Не удалось запустить LSB: запустить и остановить демон сервера базы данных mysql'. Это потому, что в репозитории Trusty используется upstart, а в 5.7 - systemd?
Джован Себастьян
1
@jowansebastian - Вы когда-нибудь узнавали, почему это происходит? У меня похожая ошибка.
Барри Ридер
@BarrieReader нет, извините, я создал виртуальную машину Centos для того, что я делал, и сделал так, чтобы она работала там нормально.
Джован Себастьян
+1. Знаете ли вы, есть ли способ установить конкретную версию MySQL 5.6, например 5.6.35?
vphilipnyc
9

Похоже, мне удалось это сделать.

  1. В раздел Software & Updates / Other Software добавлено хранилище 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-сервера

Tarlog
источник
1
Хорошее решение, но зачем вам 5,6 вместо 5,7?
Уве Бургер
5
5.7 не имеет обратной совместимости. Некоторые SQL приложения, над которыми я работаю, не работают ...
Tarlog
2
Какую ошибку вы получаете? Я подозреваю, что это происходит из-за флага ONLY_FULL_GROUP_BY, который по умолчанию включен в MySQL 5.7. Отключите его, и вы можете быть в порядке.
Джейди
В настоящее время я не помню деталей, я попробовал это почти два месяца назад. Если я правильно помню, речь шла об обработке некоторых дат. Может быть, разбор дат.
Tarlog
5.7 фактически применяет схему таблиц
Ричард Хейвен
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
Michal91
источник
1

Разработчики MySQL предоставляют пакеты Xenial MySQL 5.6 в своих собственных репозиториях , и поэтому следует отдавать им предпочтение перед установкой официальных пакетов 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.

fkraiem
источник
3
Это не работает, нет версии 5.6, только 5.7
Frodik
5
Действительно, кажется, что с тех пор, как этот ответ был написан, поддержка MySQL 5.6 была удалена из mysql-apt-configпакета, что странно, потому что она все еще указана как поддерживаемая на связанной странице ...
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 и aptitude собирается установить mysql-server-5.6. Вот вариант, который вы должны принять:

введите описание изображения здесь

Если после этого система не может подключиться к серверу MySQL, вам необходимо перезагрузить компьютер.

rebduvid
источник