Je peux installer MYSQL sur Ubuntu sans invites avec le code ci-dessous:
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
La partie avec les sélections debconf-set-je quelque part en ligne (pourrait être ici ne peut pas se rappeler) et cela a fonctionné correctement pour moi jusqu’à présent. Je ne suis pas vraiment un expert pour comprendre comment cela fonctionne, mais c’est le cas.
Cependant, je veux faire la même chose pour Percona. J’ai configuré le gestionnaire de paquets apt pour traiter avec apt-get pour percona. Alors maintenant, mon code est le suivant:
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
Cependant, Percona installe mais sans mot de passe comme défini. Je sais que je manque quelque chose dans le bit debconf.
J’apprécierais quelques conseils ici.
Merci d’avance.
J’ai effectivement trouvé que la réponse ici installer mysql sur Ubuntu sans invite de mot de passe qui a suggéré
export DEBIAN_FRONTEND=noninteractive apt-get -q -y install mysql-server
Travaillé et m’a laissé avec un utilisateur root sans mot de passe, ce que je voulais.
La deuxième partie du debconf-prefix
ne doit pas contenir le numéro de version:
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
Pour 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
Pense que je l’ai compris
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
N’utilisez pas l’ export DEBIAN_FRONTEND=noninteractive
. Si les entrées debconf sont correctes, vous ne serez pas invité à le faire. S’ils sont incorrects et que vous n’utilisez pas d’ noninteractive
l’invite continuera avec un mot de passe vide.
Depuis que Percona «se connecte» à MySQL, vérifiez qu’il est correctement installé avec
service mysql status
et vous saurez que c’est percona si vous voyez quelque chose comme
mysql.service – LSB: Démarrer et arrêter le démon mysql (Percona Server)
Ensuite, vérifiez enfin que le mot de passe a été défini correctement
mysql -u user -pmypassword
EDIT: Cela dit, pour une nouvelle version de percona, la réponse de F21 a fonctionné pour moi. Vous pouvez vérifier les entrées dans /var/cache/debconf/passwords.dat
vous pouvez toujours faire l’installation normale et ensuite script:
Si vous comprenez ce qui se passe sous le capot, il est plus facile de déboguer et de comprendre pourquoi cela ne fonctionne pas.
Lorsque vous installez un paquet Debian, vous obtenez souvent des questions sur les licences, les mots de passe, les emplacements, etc. Toutes ces valeurs sont stockées dans debconf. Si vous souhaitez effectuer une installation sans assistance, vous pouvez précharger ces réponses dans debconf afin de ne pas être invité à répondre à ces questions.
Le défi consiste à comprendre comment répondre correctement à ces questions. Pour ce faire, vous devez d’abord installer le fichier debconf-utils
apt install debconf-utils
Ensuite, vous devez installer manuellement votre paquet.
Dans mon cas, j’installe le package 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
Une fois l’installation terminée, vous pouvez obtenir les sélections définies à l’aide de l’outil deb-get-selections
.
debconf-get-selections | grep percona
Dans la réponse, vous verrez les sélections qui ont été définies. Dans ce cas
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
Vous pouvez maintenant copier les valeurs que vous souhaitez définir. Dans mon cas, je veux définir automatiquement le mot de passe root.
Dans votre script d’installation automatisée, vous pouvez maintenant utiliser l’outil debconf-set-selections
pour automatiser la définition des valeurs de la question du mot de passe root et de la question de confirmation du mot de passe 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
Bonne automatisation!