在没有密码提示的情况下在Ubuntu上安装mysql
如何编写脚本在Ubuntu上安装MySQL服务器?
sudo apt-get install mysql
会安装,但是也要求在控制台input密码。
如何以非交互的方式做到这一点? 也就是说,写一个脚本,可以提供密码?
#!/bin/bash sudo apt-get install mysql # To install mysql server # How to write script for assigning password to mysql root user # End
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password your_password' sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password your_password' sudo apt-get -y install mysql-server
对于特定的版本,比如mysql-server-5.6
,你需要像这样指定版本:
sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password your_password' sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password your_password' sudo apt-get -y install mysql-server-5.6
将your_passwordreplace为所需的root密码。 (看起来你的密码也可以留空白的一个空白的根密码。)
如果你的shell 在这里不支持string ( zsh , ksh93和bash支持它们),使用:
echo ... | sudo debconf-set-selections
这应该做的伎俩
export DEBIAN_FRONTEND=noninteractive sudo -E apt-get -q -y install mysql-server
当然,它会留下一个空白的root密码 – 所以你会想要运行类似的东西
mysqladmin -u root password mysecretpasswordgoeshere
之后向帐户添encryption码。
另一种方法使其工作:
echo "mysql-server-5.5 mysql-server/root_password password root" | debconf-set-selections echo "mysql-server-5.5 mysql-server/root_password_again password root" | debconf-set-selections apt-get -y install mysql-server-5.5
请注意,这只是将密码设置为“root”。 我不能用简单的引号来设置空密码,但这个解决scheme对我来说已经足够了。
基于这里的解决scheme。
sudo DEBIAN_FRONTEND =非交互apt-get install -y mysql-server
sudo mysql -h127.0.0.1 -P3306 -uroot -e“UPDATE mysql.user SET password = PASSWORD('yourpassword')WHERE user ='root'”