web-dev-qa-db-ja.com

パスワードプロンプトなしでMySQLをインストールするにはどうすればよいですか?

パスワードプロンプトなしでMySQLをUbuntu Nattyにインストールしようとしています。ただし、メインのインストール後のある段階でパスワードの入力を求められます。

また、パスワード(mymysqlpass)であると信じるものを入力すると、アクセス拒否通知が表示されます。その後、スクリプトが終了すると、パスワードなしでmysqlにログインできます。つまり、mysql -urootになりますが、これは起こりません。

#!/bin/bash
#This script installs mysql (latest build)
#Install MYSQL Server
mysql_pass=mymysqlpass
export DEBIAN_FRONTEND=noninteractive 
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password password '$mysql_pass''
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password_again password '$mysql_pass''
apt-get -y install mysql-server
#Configure Password and Settings for Remote Access
cp /etc/mysql/my.cnf /etc/mysql/my.bak.cnf
ip=`ifconfig eth0 | grep "inet addr"| cut -d ":" -f2 | cut -d " " -f1` ; sed -i "s/\(bind-address[\t ]*\)=.*/\1= $ip/" /etc/mysql/my.cnf
mysql -uroot -e "UPDATE mysql.user SET Password=PASSWORD('"$mysql_pass"') WHERE User='root'; FLUSH PRIVILEGES;"
sleep 10
mysql -uroot -p$mysql_pass -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '"$mysql_pass"'; FLUSH PRIVILEGES;"
#Restart
service mysql restart
echo "MySQL Installation and Configuration is Complete."
26
Chuck Ugwuh

次のコマンドは、mysql-serverパッケージをインストールするときに、MySQLルートパスワードをstrangehatに設定します。

echo "mysql-server mysql-server/root_password password strangehat" | Sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password strangehat" | Sudo debconf-set-selections

これにより、パスワードの平文コピーが/var/cache/debconf/passwords.datに作成されることに注意してください(通常、rootのみが読み取り可能で、mysql-serverパッケージのインストールが成功すると、パスワードはパッケージ管理システムによって削除されます)。

Dockerfileで引用符を使用する場合は、引用符を使用してください。

これでmysql-serverをインストールでき、パスワードプロンプトは表示されません。

Sudo apt-get install mysql-server
46
Nimmermehr
Sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password my_password'
Sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password my_password'
Sudo apt-get -y install mysql-server

これにより、介入なしでmysqlがインストールされます。

11
lilbro1062000

これは、プロンプトを表示しないように機能する場合があります。

export DEBIAN_FRONTEND=noninteractive

スクリプトについては、パスワードを引用符で囲んでみます。

mysql_pass="mymysqlpass"
7
Gustav Bertram

パスワードを引用符で囲む場合は、この部分に言い換えが必要です。 'mysql-server-5.1 mysql-server/root_passwordパスワード' $ mysql_pass ''

に:

"mysql-server-5.1 mysql-server/root_password password '$mysql_pass'"

これは私のために働いた(空のルートパスワード):

Sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password password ''"
Sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password_again password ''"
Sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password ''"
Sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ''"
export DEBIAN_FRONTEND=noninteractive
Sudo -E apt-get install -y -q mysql-server libmysqlclient-dev
1
user219207