在无业游民的引导程序shell脚本中安装mysql-server(如何跳过设置?)


16

我确实尝试在Vagrant Ubuntu 12.04 LTS虚拟机上安装mysql-server。当我这样做时,安装程​​序将自动启动。我可以在Vagrant输出中看到这一点:

虽然不是强制性的,但强烈建议您为MySQL管理“ root”用户设置密码││。││││如果将此字段保留为空白,则密码将不会更改。││││ MySQL“ root”用户

在那之后,输出文本变成了杂乱无章的东西,± ├⎺ ⎼␊⎻┌▒␌␊ ┌␋␉⎽─┌␋├␊3-0 3.7.9-2┤␉┤┼├┤1 (┤⎽␋┼± ...但是它很长,充满了绿色和红色,因此我相信其余的安装已经完成。

但是我可以在以下情况确认缺少安装:

sudo apt-get install --just-print mysql-server-5.5 
...
The following NEW packages will be installed:
  mysql-server-5.5

如何通过Shell脚本发送正确的信号来配置MYSQL服务器?或者,如果不能,如何停止配置的自动启动或启动后杀死安装程序,同时仍然安装软件包?


如果其余安装完成,则将不允许您再次安装。在安装之前,您是否尝试过设置密码?
Anthon 2014年

@Anthon对不起,我认为我在帖子中对此解释得并不好:我可以手动配置所有这些功能,但是我的目标是尽可能多地自动化设置。在此之后,我有许多步骤取决于要安装的mysql(例如,安装rvm)。
山姆

除非问题是由不干净的系统引起的(尝试在干净的虚拟机设置中安装),否则这听起来像是软件包本身的问题。在这种情况下,我有时会修补安装文件(不是完整的重建,只是解压缩/更改/放在一起)并从本地存储库提供服务。
Anthon 2014年

@Anthon:/我希望找到一种解决方案,例如:a)存在一个不会自动启动配置向导的MYSQL服务器软件包,或者b)有一种捕获此类启动的简便方法(apt-get install mysql-server | some_trap_cmd >> some.file)。听起来好像不存在这样的事情?
2014年

问题是apt-get在安装程序文件中运行脚本,除非您修补了这些脚本,否则您不会陷入陷阱。您还可以查看5.6 mysql并从launchpad进行安装,但这可能会增加引入所有依赖项的麻烦,但也许安装问题已解决。
Anthon 2014年

Answers:


29

您可以在运行apt-get安装之前通过添加debconf-set-selections命令在引导程序文件中设置MySQL根密码:

#!/usr/bin/env bash

debconf-set-selections <<< 'mysql-server mysql-server/root_password password MySuperPassword'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password MySuperPassword'
apt-get update
apt-get install -y mysql-server

我认为这可以在任何基于Debian的系统上使用。我每天都使用它,盒子是完全自动构建的。


1
太棒了!我不知道该命令
AlvaroAV

1
我不debconf-set-selections存在。这工作得很好。谢谢!
2015年

3

您可能需要研究Puppet-它非常适合自动安装和配置软件。还有一个MySQL模块,但是我还没有尝试过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.