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

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

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

ベストアンサー1

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 を空白のままにすることもできるようです。)

スクリプトを書いている場合、シェルは bash ではなく dash/ash または基本的な Unix シェルである可能性があります。これらのシェルは、zshksh93bashとは異なり、 here-strings を サポートしていません<<<。したがって、次のように使用する必要があります。

echo ... | sudo debconf-set-selections 

または、複数行の文字列をより読みやすく印刷します。

cat << EOF | sudo debconf-set-selections
mysql-server mysql-server/root_password password your_password
mysql-server mysql-server/root_password_again password your_password
EOF

次のコマンドで確認できますdebconf-get-selections:

$ sudo debconf-get-selections | grep ^mysql
mysql-server    mysql-server/root_password_again    password    your_password
mysql-server    mysql-server/root_password  password    your_password

おすすめ記事