web-dev-qa-db-ja.com

パスワードプロンプトなしでMySQLをUbuntuにインストールする

UbuntuにMySQLサーバーをインストールするためのスクリプトを書くにはどうすればいいですか?

Sudo apt-get install mysqlはインストールされますが、コンソールにパスワードを入力するように要求します。

非対話的にこれを行うにはどうすればいいですか?つまり、パスワードを提供できるスクリプトを書くのですか。

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

# How to write script for assigning password to MySQL root user
# End
296
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

mysql-server-5.6などの特定のバージョンの場合は、次のようにバージョンを指定する必要があります。

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

Mysql-community-serverの場合、キーは少し異なります。

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

Your_passwordを目的のrootパスワードに置き換えます。 (rootのパスワードが空白の場合、your_passwordも空白のままにすることができます。)

シェルがhere-stringszshksh9およびbashがこれらをサポートしている)をサポートしていない場合は、次のようにします。

echo ... | Sudo debconf-set-selections 
427

これでうまくいくはずです

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

もちろん、それはあなたに空白のrootパスワードを残します - それであなたは次のような何かを実行したいでしょう。

mysqladmin -u root password mysecretpasswordgoeshere

その後アカウントにパスワードを追加します。

234
Mez

それを機能させるもう一つの方法:

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

これは単にパスワードを "root"に設定することに注意してください。単純な引用符''を使って空白のパスワードを設定することはできませんでしたが、この解決策では十分でした。

解決法に基づく ここ

29
chrisfargen

つかいます:

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