【发布时间】:2012-07-13 07:05:11
【问题描述】:
我正在尝试通过 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
所以我在终端输入的是:
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 脚本变量在 shell 脚本中定义我的密码,而不是按字面输入密码?!
提前致谢。
编辑:
我刚刚将变量声明$dbpass="mysqlpass" 编辑为dbpass="mysqlpass"。这是一个错字。
【问题讨论】:
标签: mysql linux ubuntu debconf