Mysql自动安装卡住了

时间:2017-07-28 01:34:18

标签: mysql bash automation install apt-get

我编写了一个脚本来将一组软件包安装到服务器列表中。当我执行脚本时,mysql安装卡在“输入root密码”部分。我的脚本中有什么需要修改的吗?建议我。

有没有办法通过脚本本身传递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

即使我输入密码,它也不会进入下一步。我是脚本编写的初学者。让我知道在哪里修改脚本。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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"

以上代码可以解决问题

注意反斜杠(\)用于提高可读性。它们允许在下一行继续执行命令。