Я пытаюсь установить 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.
Я также попробовал предложения в этом посте , а также в этом (то, что я думал, могло сработать).
Не могли бы вы указать мне правильное направление?
Спасибо!
Для более новой версии (пример из файла 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
Я использую следующий файл для предотвращения обновления:
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
Лучше всего использовать докеры. Понизить рейтинг - это кошмар. Я написал небольшой урок, как установить контейнер 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
Это сработало для меня:
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
После долгой борьбы мне удалось установить и использовать его следующим образом:
Из архива загрузки 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
затем следуйте официальному руководству от 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
Если вы следовали приведенному выше руководству, то ваш базовый каталог mysql - / usr / local / mysql / , и он будет искать там файлы .cnf , поэтому, если вам нужны такие вещи, как сокеты или что-то еще, вы можете поместить my.cnf в / usr / local / mysql / и любые обычные директивы там, например:
[mysqld]
#
# * Базовые настройки
#
пользователь = MySQL
сокет = /usr/local/mysql/data/mysqld.sock
После установки не забудьте войти в систему и изменить пароль root, иначе mysql не будет работать должным образом!
ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';
Устранение неполадок:
Если вы получаете сообщения об отсутствии библиотеки, попробуйте установить:
apt install libncurses5 libaio1 libmecab2
Я следил за этим ответом, и он работает.
Сначала я удалил mysql со своего компьютера remove Mysql
Затем в разделе download я выбираю
И обычно отслеживаю ошибки.
Я также установил
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
Мне удалось заставить его работать! Я не опытный пользователь 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
Надеюсь, это поможет!