web-dev-qa-db-fra.com

Installer MySQL sur Ubuntu sans invite de mot de passe

Comment écrire un script pour installer le serveur MySQL sur Ubuntu?

Sudo apt-get install mysql sera installé, mais il demandera également la saisie d'un mot de passe dans la console.

Comment est-ce que je fais ceci d'une manière non interactive? Autrement dit, écrivez un script qui peut fournir le mot de passe?

#!/bin/bash
Sudo apt-get install mysql  # To install MySQL server

# How to write script for assigning password to MySQL root user
# End
297
Venkat
Sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password your_password'
Sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password your_password'
Sudo apt-get -y install mysql-server

Pour des versions spécifiques, telles que mysql-server-5.6, vous devez spécifier la version de la manière suivante:

Sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password your_password'
Sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password your_password'
Sudo apt-get -y install mysql-server-5.6

Pour mysql-community-server, les clés sont légèrement différentes:

Sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password your_password'
Sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password your_password'
Sudo apt-get -y install mysql-community-server

Remplacez your_password par le mot de passe root souhaité. (Il semble que votre mot de passe puisse également être laissé vide pour un mot de passe root vierge.)

Si votre shell ne supporte pas here-strings (zsh, ksh9 et bash les supporte), utilisez:

echo ... | Sudo debconf-set-selections 
426
Dimitre Radoulov

Cela devrait faire l'affaire

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

Bien sûr, cela vous laisse avec un mot de passe root vierge - vous voudrez donc exécuter quelque chose comme:

mysqladmin -u root password mysecretpasswordgoeshere

Ensuite, ajoutez un mot de passe au compte.

235
Mez

Une autre façon de le faire fonctionner:

echo "mysql-server-5.5 mysql-server/root_password password root" | debconf-set-selections
echo "mysql-server-5.5 mysql-server/root_password_again password root" | debconf-set-selections
apt-get -y install mysql-server-5.5

Notez que ceci définit simplement le mot de passe sur "root". Je ne pouvais pas obtenir de mot de passe vide avec des guillemets simples '', mais cette solution me suffisait.

Basé sur une solution ici .

29
chrisfargen

Utilisation:

Sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server

Sudo mysql -h127.0.0.1 -P3306 -uroot -e"UPDATE mysql.user SET password = PASSWORD('yourpassword') WHERE user = 'root'"
3
BALAJI POTHULA