Установка Percona/MySQL без присмотра на Ubuntu
Я могу установить 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, которые я получил где-то в сети (может быть, здесь не помню), и она работает нормально для меня до сих пор. Я не настолько эксперт, чтобы понять, как он работает, но он это делает.
Однако я хочу сделать то же самое для 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.
Я был бы признателен за некоторые рекомендации здесь.
Спасибо заранее.
Ответы
Ответ 1
Я действительно нашел, что ответ здесь установить mysql на ubuntu без подсказки пароля, который предложил
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install mysql-server
Работал и оставил меня с пользователем root без пароля, что я и хотел.
Ответ 2
Вторая часть 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
Ответ 3
Думаю, я понял это
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
EDIT: При этом для более новой версии percona ответ F21 работал у меня. Вы можете проверить записи в /var/cache/debconf/passwords.dat
Ответ 4
вы всегда можете выполнить обычную установку, а затем script:
- убийство сервера mysql
- начиная с skip-grant-tables
- настройка паролей
- убийство временно запущенного mysql без аутентификации
- запуск регулярного mysql
Ответ 5
Если вы понимаете, что происходит под капотом, это облегчает отладку и выясняет, почему это не работает.
Когда вы устанавливаете пакет 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
.
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
, чтобы автоматизировать настройку значений для пароля root и вопроса подтверждения пароля root.
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
Счастливая автоматизация!