Installing MySQL on Ubuntu Natty with Shell Script

Posted by Obi Hill on Server Fault See other posts from Server Fault or by Obi Hill
Published on 2011-11-15T15:09:00Z Indexed on 2011/11/15 17:55 UTC
Read the original article Hit count: 502

Filed under:
|

I'm trying to install MySQL on Ubuntu Natty from a shell script. However, I keep running into one major issue: when I try to define the password outside of the shell script.

Below is the code to my shell script (which I have saved in /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

So what I enter in the terminal is:

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

MySQL installs, but it installs without a password, so I can just do something like mysql -uroot to access mysql (which I don't want).

The funny thing is if I put the password in the shell script as regular text, it works ok. So if I my install script is as follows, everything works (i.e. I must specify a password to access 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

Is there a way I can use a shell script variable to define my password in the shell script, instead of entering the password literally?!

Thanks in advance.

EDIT

I've found the answer to this.

The following is what I should have entered in the terminal:

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

It works like a charm now.

© Server Fault or respective owner

Related posts about ubuntu

Related posts about mysql