在Ubuntu上无人值守地安装Percona/MySQL

Obi*_*ill 17 mysql linux ubuntu percona ubuntu-11.04

我可以在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
Run Code Online (Sandbox Code Playgroud)

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

但是,我想为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
Run Code Online (Sandbox Code Playgroud)

但是,Percona安装但没有定义的密码.我知道我在debconf中丢失了一些东西.

我在这里感谢一些指导.

提前致谢.

Joh*_*ell 6

我实际上发现这里的答案在ubuntu上安装mysql而没有建议的密码提示

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

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


F21*_*F21 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
Run Code Online (Sandbox Code Playgroud)

对于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
Run Code Online (Sandbox Code Playgroud)


Bre*_*red 6

如果您了解幕后发生的事情,则可以更轻松地进行调试并找出它不起作用的原因。

当您安装 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
Run Code Online (Sandbox Code Playgroud)

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

debconf-get-selections | grep percona
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

您现在可以复制要设置的值。就我而言,我想自动设置 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
Run Code Online (Sandbox Code Playgroud)

自动化快乐!


pQd*_*pQd 0

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

  • 杀死mysql服务器
  • 从skip-grant-tables开始
  • 调整密码
  • 在没有身份验证的情况下杀死临时启动的mysql
  • 启动常规 mysql