Ubuntu 18.04 mysql Ошибка установки: Ошибка: dpkg: проблемы с зависимостями препятствуют настройке mysql-сервера

Три варианта:

  1. Передайте содержимое файла в командной строке, а затем используйте его в сценарии.
  2. Передайте имя файла в командной строке, затем прочитайте из файла в сценарии.
  3. Передайте содержимое файла на стандартный ввод, затем прочитайте стандартный ввод в сценарии.

Передача содержимого в качестве аргумента командной строки:

$./script.sh "$(<some_file)"

Внутри скрипта:

some_data=$1

$1будет значением первого аргумента командной строки.

Это не удастся, если у вас будет слишком много данных (команда, которую должна будет выполнить оболочка, станет слишком большой ).


Передача имени файла:

$./script.sh some_file

Внутри скрипта:

some_data=$(<"$1")

или

IFS= read -r some_data <"$1"

Подключение стандартного ввода к файлу:

$./script.sh <some_file

Внутри скрипта:

IFS= read -r some_data

Недостатком этого способа является то, что стандартный ввод скрипта теперь подключен к some_file. Однако он предоставляет пользователю скрипта большую гибкость при передаче данных на стандартный ввод из файла или из конвейера.

0
12.01.2020, 17:36
2 ответа

Вы перепутали MariaDB с MySQL.

Свидетель в выводеapt-cache policy mysql-common:

        500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main amd64 Packages
…
        500 http://fr.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

Они оба имеют пакет mysql-common. Как вы можете видеть, версия MariaDB (, обратите внимание, что +mariaстроки версии )взяты из сторонних -репозиториев MariaDB, а MySQL — из репозитория пакетов Ubuntu.

К сожалению, содержимое пакетов не совпадает . Более того, установка MySQL зависит от частей пакета MySQL mysql-common, которых нет в версии этого пакета для MariaDB , в частности программы /usr/share/mysql-common/configure-symlinks, который устанавливает «альтернативы» Debian/Ubuntu для /etc/mysql/my.cnf.

Это остановило пакет MySQL mysql-server-5.7от выполнения последнего шага установки, шага «настройки».

Вам необходимо удалить стороннюю -версию MariaDB пакета mysql-common, а также установить (и настроить )версию MySQL из репозитория Ubuntu. Тогда шаг «настроить» пакета mysql-server-5.7будет работать.

Это можно сделать, выбрав правильную версию mysql-commonв (, например )aptitude, и установив ее. Но, вероятно, самый простой и чистый способ добиться этого:

  • Удалите все следы сторонних -репозиториев MariaDB из ваших sources.listи sources.list.d/.
  • Очистить все потерянные пакеты MariaDB.
  • Установите MySQL mysql-server-5.7и его зависимости еще раз.

Следующим шагом будет решение проблем в вашем my.cnfфайле, вызванных этими возвратами, которые могут возникнуть и стать следующей причиной того, что mysql-server-5.7не удается завершить установку. Это есть в примечаниях к выпуску Ubuntu.

Дополнительная литература

  • " MySQL 5.7 ". Примечания к выпуску Ubuntu 16.04 LTS . Канонический. 2016. wiki.ubuntu.com.
0
28.01.2020, 02:57

Обратите внимание, :эта ошибка также может возникнуть, если порт (3306 )используется другим приложением. В моем случае у меня был док-контейнер с mysql, который использовал порт 3306, поэтому моя локальная установка mysql была настроена.

$ sudo netstat -nltp | grep LISTEN | grep 3306
$ sudo netstat -nltp | grep LISTEN | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1017033/docker-prox 

sudo apt purge --auto-remove mysql*
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql*

sudo apt install mysql-client-8.0 mysql-server-8.0 --fix-broken -y
0
04.02.2021, 00:25

Теги

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