使用Shell脚本在Ubuntu Natty上安装MySQL

我试图从一个shell脚本在Ubuntu Natty上安装MySQL。 但是,我仍然遇到一个主要问题:当我尝试在shell脚本之外定义密码时。

以下是我的shell脚本的代码(我保存在/etc/init.d/install_mysql中:

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 

所以我在terminalinput的是:

 dbpass="mysqlpass" chmod +x /etc/init.d/install_mysql /etc/init.d/install_mysql 

MySQL的安装,但它没有密码安装,所以我可以做一些像mysql -uroot来访问MySQL(我不想)。

有趣的是,如果我把密码放在shell脚本中作为普通文本,它就可以正常工作。 所以,如果我的安装脚本如下,一切正常(即我必须指定一个密码来访问MySQL):

 export DEBIAN_FRONTEND=noninteractive echo mysql-server-5.1 mysql-server/root_password password mysqlpass | debconf-set-selections echo mysql-server-5.1 mysql-server/root_password_again password mysqlpass | debconf-set-selections apt-get -y install mysql-server 

有没有一种方法可以使用shell脚本variables在shell脚本中定义我的密码,而不是直接input密码?

提前致谢。

编辑

我find了答案。

以下是我应该在terminalinput的内容:

 dbpass="mysqlpass" export dbpass chmod +x /etc/init.d/install_mysql /etc/init.d/install_mysql 

它现在像一个魅力。

您可以使用预置来configurationmysql服务器。

安装进度如下所示:

创build一个包含密码的文件/var/cache/local/preseeding/mysql-server.seed

 mysql-server-5.0 mysql-server/root_password_again select YOUR PASSWORD mysql-server-5.0 mysql-server/root_password select YOUR PASSWORD 

现在用这个configuration文件安装你的mysql服务器。

 debconf-set-selections /var/cache/local/preseeding/mysql-server.seed apt-get -y install mysql-server 

种子文件中还有更多的configuration选项。