Mysql 自动安装卡住了
Mysql automated installation stuck
我编写了一个脚本来将一些软件包安装到服务器列表中。当我执行脚本 mysql 安装卡在 "enter the root password" 部分。我的脚本中有什么需要修改的吗?多多指教。
有什么方法可以通过脚本本身传递 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
即使我输入了密码,也不会进行下一步。我是脚本的初学者。让我知道在哪里修改脚本。
apt-get
是 dpkg
和 debconf
的前端,并且 运行 默认处于交互模式,即使 -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
#!/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"
上面的代码就可以了
注意 : 反斜杠 (\) 用于提高可读性。它们允许在下一行继续命令。
我编写了一个脚本来将一些软件包安装到服务器列表中。当我执行脚本 mysql 安装卡在 "enter the root password" 部分。我的脚本中有什么需要修改的吗?多多指教。
有什么方法可以通过脚本本身传递 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
即使我输入了密码,也不会进行下一步。我是脚本的初学者。让我知道在哪里修改脚本。
apt-get
是 dpkg
和 debconf
的前端,并且 运行 默认处于交互模式,即使 -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
#!/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"
上面的代码就可以了
注意 : 反斜杠 (\) 用于提高可读性。它们允许在下一行继续命令。