【问题标题】:Mysql automated installation stuckmysql自动安装卡住了
【发布时间】:2018-01-03 22:24:33
【问题描述】:

我编写了一个脚本来将一组软件包安装到服务器列表中。当我执行脚本时,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

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

【问题讨论】:

    标签: mysql bash automation installation apt-get


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:
      #!/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"
      

      上面的代码可以解决问题

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-06
        • 1970-01-01
        • 2016-12-24
        • 1970-01-01
        • 2017-10-30
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        相关资源
        最近更新 更多