我可以在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-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
但是,Percona安装但没有定义的密码。我知道我在debconf中遗漏了一些东西。
我很欣赏这里的一些指导。
提前致谢。
答案 0 :(得分:5)
我实际上找到了建议
的答案install mysql on ubuntu without password prompt export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install mysql-server
工作并留给我一个没有密码的root用户,这就是我想要的。
答案 1 :(得分:5)
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
答案 2 :(得分:2)
想想我想出来了
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
如果你看到类似
的话,你会知道它是perconamysql.service - LSB:启动和停止mysql(Percona Server)守护程序
然后最后检查密码设置是否正确
mysql -u user -pmypassword
编辑:也就是说,对于更新版本的percona,F21的答案对我有用。您可以查看/var/cache/debconf/passwords.dat
答案 3 :(得分:1)
如果您了解了幕后发生的事情,那么就可以更轻松地进行调试,并找出原因无法解决的问题。
当您经常安装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
快乐自动化!
答案 4 :(得分:0)
您可以随时进行正常安装,然后编写脚本: