【问题标题】:install mysql 5.7 purely from bash script on Ubuntu完全从 Ubuntu 上的 bash 脚本安装 mysql 5.7
【发布时间】:2016-10-14 19:59:57
【问题描述】:

我想要一个无需任何手动输入即可安装 MySQL 5.7 实例的 bash 脚本。

我正在关注tutorial on Digital Ocean,它说对于 5.7,您必须运行以下命令,然后将命令放入提示符(下面的屏幕截图)。

wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb

如果需要我使用提示符,我该如何自动安装?我应该尝试模拟击键吗?还是我走错路了?

【问题讨论】:

  • @tt_Gantz 忽略反对票。并遵循我所给予的。你不需要那个包
  • 我已经从那个包的作用中给出了答案。

标签: mysql linux bash shell ubuntu


【解决方案1】:

此答案是 Bimmy 和 khrm 答案的组合和更改。

第 1 步:

您必须设置debconf 值,该值将自动填写安装提示的值。

export DEBIAN_FRONTEND="noninteractive" sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password rootpw" sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password rootpw"

要得到你需要的值,只要正常运行安装,一个很好的教程是here

第 2 步:

通过添加 5.7 存储库并更新 `apt-get 来更新 APT 所需的信息

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5072E1F5 cat <<- EOF > /etc/apt/sources.list.d/mysql.list deb http://repo.mysql.com/apt/ubuntu/ trusty mysql-5.7 EOF sudo apt-get update

第 3 步:

安装 MySQL。您可以运行我的mysql_secure_installation,但这会要求您提供更多提示。 mysql_secure_installation 只是一个脚本,所以如果你愿意,你可以运行该脚本中与你相关的部分。

我刚跑 sudo apt-get install -y mysql-server-5.7 独立。

【讨论】:

  • 恭喜,很高兴为您提供帮助。
【解决方案2】:

你走错路了。你不需要那个包。该软件包仅设置 mysql repo。

如果您不想提示,则需要手动设置 mysql 存储库。假设您使用的是可信赖的(Ubuntu 14.04):

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5072E1F5
cat <<- EOF > /etc/apt/sources.list.d/mysql.list
deb http://repo.mysql.com/apt/ubuntu/ trusty mysql-5.7
EOF
sudo apt-get update
sudo apt-get install -y mysql-server-5.7
mysql_secure_installation

如果你想要其他东西,比如 workbench-6.2 等。你需要像这样在文件 /etc/apt/sources.list.d/mysql.list 在第一个条目之后包含它:-

deb http://repo.mysql.com/apt/ubuntu/ trusty workbench-6.2

【讨论】:

  • @GeraldSchneider 他的主要问题是安装 mysql-server。不提示。由于该软件包设置回购,他得到了提示。所以删除否定投票。
  • 首先,冷静下来。有些人不使用这个网站 24/7,所以当你没有立即得到答案时,没有必要变得个人化。正如我所看到的,问题是“如何在安装软件包期间自动回答提示?”。您的回答没有解决这个问题,它只对这个特定包的这个特定案例有帮助。这就是为什么你对我投了反对票。在 SO 上,我们尝试以帮助遇到相同或类似问题的其他人的方式收集问题和答案。
  • 您的答案对其他人有帮助的可能性很小。同时发布的第二个答案直接解决了实际问题(如我所见),可以轻松适应其他软件包并适用于每个基于 debian 的发行版。因此,它得到了我的支持。您可能已经注意到 OP 尚未对任何建议作出反应。只要 OP 没有以任何方式澄清您的解决方案有帮助,我看不出有任何理由撤回我的投票。
  • 我不介意它是如何发生的,只要它可以通过 bash 脚本完成,这就是为什么我提到“或者我是不是走错了路?”在问题的最后。这个答案仍然需要在提示中输入密码。然而,结合@BimmyAndJimmy 配置密码的答案,我能够让它工作
  • 它从 pgp.mit.edu 获取那个密钥。我从这里得到这个:dev.mysql.com/doc/mysql-apt-repo-quick-guide/en 那个包是自己做的。
【解决方案3】:

我认为link 可能对您有用。 video 显示了使用以前版本(5.6)的整个过程。

总而言之,你应该:

  1. 导出一个名为 DEBIAN_FRONTEND 的变量,其值为“noninteractive”。
  2. 使用 debconf-set-selections 为您的 MySQL 服务器设置 root 密码。
  3. 安装 mysql-server-5.7 包。
  4. 之后运行安全安装。

    export DEBIAN_FRONTEND="noninteractive"
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password rootpw"
    sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password rootpw"
    sudo apt-get install -y mysql-server-5.7
    mysql_secure_installation
    

注意:您可以输入以下命令安装 debconf-utils:sudo apt-get install -y debconf-utils

【讨论】:

  • 这个答案在很多方面都是错误的。首先,如果用户明天需要 mysql 5.8 怎么办?它不会在发行版回购中。目前在可信赖的仓库中,mysql5.7 不存在。
  • 运行所有命令后,我得到一个错误,说它无法找到 mysql-server-5.7
  • 这是因为,您不会在发行版 repo 中找到 mysql-server-5.7。您必须启用 mysql repo。
猜你喜欢
  • 2020-07-26
  • 2022-11-16
  • 1970-01-01
  • 2016-04-06
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
相关资源
最近更新 更多