Installer Percona / MySQL sans surveillance sur Ubuntu

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:

  • tuer le serveur mysql
  • le démarrer avec skip-grant-tables
  • ajuster les mots de passe
  • tuer le mysql démarré temporairement sans authentification
  • commencer régulièrement mysql

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!