17

我可以在没有提示的情况下在 Ubuntu 上安装 MYSQL,代码如下:

dbpass="mydbpassword"
export DEBIAN_FRONTEND=noninteractive
echo mysql-server-5.1 mysql-server/root_password password $dbpass | debconf-set-selections
echo mysql-server-5.1 mysql-server/root_password_again password $dbpass | debconf-set-selections
apt-get -y install mysql-server

我在网上某个地方找到的带有 debconf-set-selections 的部分(可能在这里不记得了),到目前为止它对我来说还可以。我不是了解它如何工作的专家,但确实如此。

但是,我想为 Percona 做同样的事情。我已经设置了 apt 包管理器来处理使用 apt-get for percona。所以现在我的代码如下:

dbpass="dbpass" && export dbpass
export DEBIAN_FRONTEND=noninteractive
echo percona-server-server-5.5 percona-server-server-5.5/root_password password $dbpass | debconf-set-selections
echo percona-server-server-5.5 percona-server-server-5.5/root_password_again password $dbpass | debconf-set-selections
apt-get -y install percona-server-server-5.5

但是,Percona 安装但没有定义的密码。我知道我在 debconf 位中遗漏了一些东西。

我很感激这里的一些指导。

提前致谢。

4

5 回答 5

6

的第二部分debconf-prefix不应包含版本号:

echo percona-server-server-5.5 percona-server-server/root_password password $dbpass | sudo debconf-set-selections
echo percona-server-server-5.5 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections

对于 5.6:

echo percona-server-server-5.6 percona-server-server/root_password password $dbpass | sudo debconf-set-selections
echo percona-server-server-5.6 percona-server-server/root_password_again password $dbpass | sudo debconf-set-selections
于 2014-03-15T08:14:20.927 回答
6

我实际上发现这里的答案install mysql on ubuntu without password prompt提示

export DEBIAN_FRONTEND=noninteractive apt-get -q -y install mysql-server

工作并给我留下了一个没有密码的root用户,这就是我想要的。

于 2013-08-08T00:35:17.100 回答
4

如果您了解引擎盖下发生的事情,则可以更轻松地进行调试并弄清楚为什么它不起作用。

当您安装 debian 软件包时,您经常会收到有关许可证、密码、位置等的问题。所有这些值都存储在 debconf 中。如果您想要进行无人值守安装,您可以将这些答案预加载到 debconf 中,这样您就不会被提示这些问题,因为它们已经被回答了。

当理解如何正确回答这些问题时,挑战就来了。为此,您首先需要安装 debconf-utils

apt install debconf-utils

接下来你需要手动安装你的包。

就我而言,我正在安装 percona-xtradb-cluster-57 软件包。

wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
sudo apt-get update -y
sudo apt-get install -y percona-xtradb-cluster-57

deb-get-selections安装后,您可以使用该工具获取已设置的选项。

debconf-get-selections | grep percona

在响应中,您将看到已设置的选择。在这种情况下

percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass password
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/re-root-pass  password
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/remove-data-dir   boolean false
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass-mismatch    error
percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/data-dir  note

您现在可以复制要设置的值。在我的情况下,我想自动设置 root 密码。

在您的自动安装脚本中,您现在可以使用该debconf-set-selections工具自动设置 root 密码问题和确认 root 密码问题的值。

echo "percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/root-pass password my_temp_password" | debconf-set-selections
echo "percona-xtradb-cluster-server-5.7   percona-xtradb-cluster-server-5.7/re-root-pass  password my_temp_password" | debconf-set-selections

自动化快乐!

于 2018-03-06T17:41:46.450 回答
3

想我想通了

echo "percona-server-server-5.5 mysql-server/root_password password mypassword" | debconf-set-selections
echo "percona-server-server-5.5 mysql-server/root_password_again password mypassword" | debconf-set-selections

不要使用export DEBIAN_FRONTEND=noninteractive. 如果 debconf 条目正确,则无论如何都不会提示您。如果它们不正确并且您使用noninteractive,则提示将继续使用空白密码。

由于 Percona '挂钩' MySQL 检查它是否使用正确安装

service mysql status

如果你看到类似的东西,你就会知道它是 percona

mysql.service - LSB:启动和停止 mysql (Percona Server) 守护进程

然后最后检查密码是否设置正确

mysql -u user -pmypassword

编辑:也就是说,对于更新版本的 percona,F21的答案对我有用。您可以检查条目/var/cache/debconf/passwords.dat

于 2016-04-22T20:34:03.847 回答
0

您可以随时进行正常安装,然后编写脚本:

  • 杀死mysql服务器
  • 跳过授权表开始
  • 调整密码
  • 杀死临时启动的 mysql 而不进行身份验证
  • 启动常规mysql
于 2012-08-27T20:37:33.157 回答