Установите MySQL 5.7 на Ubuntu 20.04

Я пытаюсь установить MySQL 5.7 на новую установку Ubuntu 20.04. Я выполнил шаги Кульфи в этой публикации , чтобы установить MySQL 5.7 на Ubuntu 20.04. Мне удалось установить mysql-client, но не mysql-server.

Результат

apt-cache policy mysql-server

-

mysql-server:
  Installed: (none)
  Candidate: 8.0.19-0ubuntu5
  Version table:
     8.0.19-0ubuntu5 500
        500 http://ro.archive.ubuntu.com/ubuntu focal/main amd64 Packages
        500 http://ro.archive.ubuntu.com/ubuntu focal/main i386 Packages
     5.7.30-1ubuntu18.04 500
        500 http://repo.mysql.com/apt/ubuntu bionic/mysql-5.7 amd64 Packages
     5.7.29-0ubuntu0.18.04.1 500
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main i386 Packages

Я использовал следующую команду для установки mysql-server.

sudo apt install mysql-server=5.7.29-0ubuntu0.18.04.1

Вывод вышеуказанной команды:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mysql-server : Depends: mysql-server-5.7 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Я также попробовал предложения в этом посте , а также в этом (то, что я думал, могло сработать).

Не могли бы вы указать мне правильное направление?

Спасибо!

16
задан 28 April 2020 в 22:13

7 ответов

Для более новой версии (пример из файла Docker, основанного на ubuntu 20.04):

RUN wget http://repo.mysql.com/mysql-apt-config_0.8.16-1_all.deb \
    && echo mysql-apt-config    mysql-apt-config/repo-codename  select  bionic | debconf-set-selections \
    && echo mysql-apt-config    mysql-apt-config/repo-distro    select  ubuntu | debconf-set-selections \
    && echo mysql-apt-config    mysql-apt-config/select-server  select  mysql-5.7 | debconf-set-selections \
    && echo mysql-apt-config    mysql-apt-config/select-product select  Ok | debconf-set-selections \
    && dpkg -i mysql-apt-config_0.8.16-1_all.deb \
    && apt-get update && apt-get install -y mysql-client=5.7.32-1ubuntu18.04
0
ответ дан 5 January 2021 в 21:48

Я использую следующий файл для предотвращения обновления:

sudo nano /etc/apt/preferences.d/mysql
Package: libmysqlclient-dev
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: libmysqlclient20
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: libmysqld-dev
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-server
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-client
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-community-server
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-community-client
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-common
Pin: version 5.7.30-0ubuntu0.18.04.1
Pin-Priority: 1001

Package: mysql-apt-config
Pin: version 0.8.10-1
Pin-Priority: 1001
0
ответ дан 5 January 2021 в 21:48

Лучше всего использовать докеры. Понизить рейтинг - это кошмар. Я написал небольшой урок, как установить контейнер Docker с MySQL 5.7 в ubuntu 20.04. https://assen.xyz/easy-way-to-deploy-mysql-5-7-container-in-ubuntu-20-04/

Мой опыт при понижении версии: как сказал @tsotzolas, чтобы использовать это для очистки установки v 8.0 Как мне удалить MySQL?

Но это очистит ваши пользователи, пароли ... итак !! резервное копирование!! сначала, если вы выполнили обновление.

Затем выполните следующие действия. https://marabesi.com/mysql/2019/12/23/mysql-5.7-on-ubuntu-19.html

У меня это сработало в Kubuntu 19.10 и 20.04

1
ответ дан 5 January 2021 в 21:48

Это сработало для меня:

wget https://repo.mysql.com//mysql-apt-config_0.8.12-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

Выберите Bionic , перейдите на mysql 5.7

sudo apt update
sudo apt install mysql-client=5.7.*-1ubuntu18.04
sudo apt install mysql-community-server=5.7.*-1ubuntu18.04
sudo apt install mysql-server=5.7.*-1ubuntu18.04
1
ответ дан 5 January 2021 в 21:48

После долгой борьбы мне удалось установить и использовать его следующим образом:

  1. Из архива загрузки mysql, скачать общий 5.7 , лучше всего, если сначала вы переходите в / usr / local / поэтому

     sudo su
    cd / usr / local
    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
     
  2. затем следуйте официальному руководству от https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

 shell> groupadd mysql
оболочка> useradd -r -g mysql -s / bin / false mysql
оболочка> cd / usr / local
оболочка> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
оболочка> ln -s полный путь-к-mysql-ВЕРСИЯ-OS mysql
оболочка> cd mysql
оболочка> mkdir mysql-файлы
оболочка> chown mysql: mysql файлы mysql
оболочка> chmod 750 mysql-файлов
оболочка> bin / mysqld --initialize --user = mysql
оболочка> bin / mysql_ssl_rsa_setup
оболочка> bin / mysqld_safe --user = mysql &
 # Следующая команда не обязательна
оболочка> cp файлы поддержки / mysql.server /etc/init.d/mysql.server
 
  1. Если вы следовали приведенному выше руководству, то ваш базовый каталог mysql - / usr / local / mysql / , и он будет искать там файлы .cnf , поэтому, если вам нужны такие вещи, как сокеты или что-то еще, вы можете поместить my.cnf в / usr / local / mysql / и любые обычные директивы там, например:

      [mysqld]
     #
     # * Базовые настройки
     #
    пользователь = MySQL
    сокет = /usr/local/mysql/data/mysqld.sock
     
  2. После установки не забудьте войти в систему и изменить пароль root, иначе mysql не будет работать должным образом!

     ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';
     

Устранение неполадок:
Если вы получаете сообщения об отсутствии библиотеки, попробуйте установить:

apt install libncurses5 libaio1 libmecab2
2
ответ дан 5 January 2021 в 21:48

Я следил за этим ответом, и он работает.
Сначала я удалил mysql со своего компьютера remove Mysql

Затем в разделе download я выбираю
enter image description here

И обычно отслеживаю ошибки.
Я также установил
sudo apt-get install libaio1
там, где в ошибке говорилось, что это необходимо.


ОБНОВЛЕНИЕ 31.05.2020 Я думаю, что порядок следующий:

sudo dpkg -i mysql-common_5.7.30-1ubuntu18.04_amd64.deb 
sudo dpkg -i libmysqlclient20_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.30-1ubuntu18.04_amd64.deb  
sudo dpkg -i libmysqld-dev_5.7.30-1ubuntu18.04_amd64.deb     
sudo dpkg -i mysql-community-source_5.7.30-1ubuntu18.04_amd64.deb  
sudo apt-get install libaio1
sudo apt install libmecab2
sudo dpkg -i mysql-community-client_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-server_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-test_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-testsuite_5.7.30-1ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.30-1ubuntu18.04_amd64.deb
6
ответ дан 5 January 2021 в 21:48

Мне удалось заставить его работать! Я не опытный пользователь Linux, поэтому не стесняйтесь комментировать / редактировать / улучшать мой ответ. Как вы увидите, я не понимаю, почему некоторые вещи работают, а некоторые нет ...

Итак, я установил mysql-apt-config в качестве помощника. Это закомментировало все записи в /etc/apt/sources.list.d/mysql.list (создано согласно ответу Кульфи в этом сообщении )

Эта статья также помогло.

wget http://repo.mysql.com/mysql-apt-config_0.8.10-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

Запустите команду ниже и выберите MySQL 5.7 из списка:

sudo dpkg-reconfigure mysql-apt-config
sudo apt update
sudo apt-cache policy mysql-server

Я не знаю почему, но без следующего, при установке mysql-community-server возникла ошибка.

sudo mkdir /etc/mysql/conf.d

Установите компоненты в этом порядке. В противном случае отображаются ошибки, похожие на те, что были в моем исходном вопросе. В принципе, я пытался установить mysql-server - он не смог запросить mysql-community-server. Я попытался установить позже, снова не удалось, запросив mysql-client. Я попытался установить этот, и он работал. Затем я проследил свои шаги назад - установил mysql-community-server, а затем mysql-server. Он работал без ошибок.

sudo apt install -f mysql-client=5.7.30-1ubuntu18.04
sudo apt install -f mysql-community-server=5.7.30-1ubuntu18.04
sudo apt install -f mysql-server=5.7.30-1ubuntu18.04

Я использовал следующее, чтобы защитить установку MySQL sudo mysql_secure_installation

Предотвратить обновление до MySQL 8 - спасибо NSwanson7 в этом сообщении

sudo nano /etc/apt/preferences.d/mysql

Добавьте следующее содержимое в созданный выше файл.

Package: mysql-server
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001

Package: mysql-client
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001

Package: mysql-community-server
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001

Package: mysql-community-client
Pin: version 5.7.30-1ubuntu18.04
Pin-Priority: 1001

Package: mysql-apt-config
Pin: version 0.8.10-1
Pin-Priority: 1001

Надеюсь, это поможет!

20
ответ дан 5 January 2021 в 21:48

Другие вопросы по тегам:

Похожие вопросы: