Установка Percona / MySQL в Ubuntu без присмотра - PullRequest
16 голосов
/ 17 марта 2012

Я могу установить MYSQL в Ubuntu без запросов с кодом ниже:

dbpass="mydbpassword"
export DEBIAN_FRONTEND=noninteractive
echo mysql-server-5.1 mysql-server/root_password password $dbpass | debconf-set-selections
echo mysql-server-5.1 mysql-server/root_password_again password $dbpass | debconf-set-selections
apt-get -y install mysql-server

Часть с debconf-set-selections, которую я где-то нашел в сети (может быть, здесь не помню)до сих пор работал нормально для меня.Я не настолько опытен, чтобы понимать, как это работает, но это так.

Однако я хочу сделать то же самое для Percona.Я настроил менеджер пакетов apt для работы с apt-get для percona.Итак, теперь мой код выглядит следующим образом:

dbpass="dbpass" && export dbpass
export DEBIAN_FRONTEND=noninteractive
echo percona-server-server-5.5 percona-server-server-5.5/root_password password $dbpass | debconf-set-selections
echo percona-server-server-5.5 percona-server-server-5.5/root_password_again password $dbpass | debconf-set-selections
apt-get -y install percona-server-server-5.5

Однако Percona устанавливается, но без пароля, как определено.Я знаю, что что-то упущено в бите debconf.

Буду признателен за некоторые рекомендации.

Заранее спасибо.

Ответы [ 5 ]

5 голосов
/ 08 августа 2013

Я обнаружил, что ответ здесь установить mysql в Ubuntu без запроса пароля , который предложил

export DEBIAN_FRONTEND=noninteractive apt-get -q -y install mysql-server

Сработал и оставил меня с пользователем root безпароль, который я и хотел.

5 голосов
/ 15 марта 2014

Вторая часть debconf-prefix не должна содержать номер версии:

echo percona-server-server-5.5 percona-server-server/root_password password $dbpass | sudo debconf-set-selections
echo percona-server-server-5.5 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections

Для 5.6:

echo percona-server-server-5.6 percona-server-server/root_password password $dbpass | sudo debconf-set-selections
echo percona-server-server-5.6 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections
2 голосов
/ 06 марта 2018

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

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

Проблема возникает, когда вы понимаете, как правильно ответить на эти вопросы.Для этого вам сначала нужно установить debconf-utils

apt install debconf-utils

, затем вам необходимо установить пакет вручную.

В моем случае я устанавливаю пакет percona-xtradb-cluster-57.

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo apt-get update -y
sudo apt-get install -y percona-xtradb-cluster-57

После того, как это будет установлено, вы можете получить выборки, которые были установлены с помощью deb-get-selections tool.

debconf-get-selections | grep percona

В ответе вы увидите выбранные варианты.В этом случае

percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass password
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/re-root-pass  password
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/remove-data-dir   boolean false
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass-mismatch    error
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/data-dir  note

Теперь вы можете скопировать значения, которые вы хотите установить.В моем случае я хочу автоматически установить пароль root.

В вашем скрипте автоматической установки теперь вы можете использовать инструмент debconf-set-selections, чтобы автоматизировать установку значений для вопроса о корневом пароле и вопросе о подтверждении пароля.

echo "percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass password my_temp_password" | debconf-set-selections
echo "percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/re-root-pass  password my_temp_password" | debconf-set-selections

Happy Automating!

2 голосов
/ 22 апреля 2016

Думаю, я понял это

echo "percona-server-server-5.5 mysql-server/root_password password mypassword" | debconf-set-selections
echo "percona-server-server-5.5 mysql-server/root_password_again password mypassword" | debconf-set-selections

Не используйте export DEBIAN_FRONTEND=noninteractive.Если записи debconf верны, вам все равно не будет предложено.Если они неверны и вы используете noninteractive, то приглашение будет продолжено с пустым паролем.

Поскольку Percona «подключается» к MySQL, проверьте, правильно ли он установлен, используя

service mysql status

, и выбудет знать, что это percona, если вы увидите что-то вроде

mysql.service - LSB: запуск и остановка демона mysql (Percona Server)

Затем, наконец, проверьте, что парольустановить правильно

mysql -u user -pmypassword

РЕДАКТИРОВАТЬ: Тем не менее, для более новой версии Percona, ответ F21 работал для меня.Вы можете проверить записи в /var/cache/debconf/passwords.dat

0 голосов
/ 28 августа 2012

вы всегда можете сделать нормальную установку, а затем скрипт:

  • убивает MySQL сервер
  • начиная с таблицы пропущенных грантов
  • настройка паролей
  • уничтожение временно запущенного mysql без аутентификации
  • запуск обычного mysql
...