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 シェルである可能性があります。これらのシェルは、zsh、ksh93、bashとは異なり、 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