繁体   English   中英

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

[英]Installing Percona/MySQL unattended on Ubuntu

我可以在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中丢失了一些东西。

我在这里感谢一些指导。

提前致谢。

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

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

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

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

如果你了解底层发生了什么,它就可以更容易地进行调试,并弄清楚为什么这样做不起作用。

当您经常安装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工具deb-get-selections已设置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

快乐的自动化!

想想我明白了

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的条目

你总是可以做正常的安装,然后脚本:

  • 杀死mysql服务器
  • skip-grant-tables启动它
  • 调整密码
  • 杀死暂时启动的mysql而无需身份验证
  • 开始常规的mysql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM