MySQL自动安装卡住了

3
我已经编写了一个脚本,用于将一些软件包安装到服务器列表中。当我执行该脚本时,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

安装卡在这里

即使我输入了密码,它也不会进入下一步。我对脚本编写非常陌生。请告诉我在哪里修改脚本。

2个回答

2

apt-get 是一个与 dpkgdebconf 交互的前端程序,默认情况下以交互模式运行,即使使用 -y 参数也无法改变这一点。

安装 mysql-server 时需要在安装过程中交互输入 root 密码。

要在 Debian 系统上全自动安装 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

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"

以上代码解决了问题

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接