2017-07-28 156 views
3

我已經編寫了一個腳本來安裝一些軟件包到服務器列表。當我執行腳本時,mysql安裝被卡在「輸入root密碼」部分。有什麼我需要修改我的腳本?給我建議。Mysql自動安裝卡住

有什麼辦法通過腳本本身傳遞mysql root密碼?

下面是我用

#!/usr/bin/env bash 
read -p "Enter server name : " servername 
echo "Installing package on $servername" 
ssh "${servername}" sudo apt-get -y install apache2 mysql-server 

Installation got stuck here

即使我輸入密碼,就無法進行下一步的代碼。我非常喜歡腳本編程。讓我知道在哪裏修改腳本。

回答

0
#!/usr/bin/env bash 
read -p "Enter server name : " servername 
echo "Installing package on $servername" 
ssh "${Host}" "echo 'mysql-server-5.7 mysql-server/root_password password your_password' | debconf-set-selections && \ 
echo 'mysql-server-5.7 mysql-server/root_password_again password your_password' | debconf-set-selections && \ 
apt-get update && \ 
apt-get -y install apache2 apache2-doc apache2-utils mysql-server" 

上面的代碼做的伎倆

注意反斜槓(\)用於提高可讀性。他們允許繼續下一行的命令。

2

apt-getdpkgdebconf的前端,默認情況下以交互模式運行,即使-y也不會改變這種情況。

mysql-server安裝需要在安裝過程中交互輸入root密碼。

要在基於Debian的Linux發行版上完全自動安裝MySQL服務器,可以按如下方式進入非交互模式並預設MySQL root密碼。

在要運行過程中的shell執行:

export DEBIAN_FRONTEND="noninteractive" 

然後

apt-get install -y debconf-utils 
debconf-set-selections <<< "mysql-server mysql-server/root_password yournewpassword" 
debconf-set-selections <<< "mysql-server mysql-server/root_password_again yournewpassword" 
apt-get install -y mysql-server-5.6