我试图从一个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选项。