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

使用 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

所以我在终端输入的是:

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"
export dbpass
chmod +x /etc/init.d/install_mysql
/etc/init.d/install_mysql

现在它运行得非常好。

答案1

您可以使用预先设定来配置 mysql 服务器。

安装进度如下:

/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

现在使用此配置文件安装您的 mysql 服务器。

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

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

相关内容