在没有密码提示的情况下在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 在这里不支持stringzshksh93bash支持它们),使用:

 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'”