I am setting up a bash script to automate the building of a LAMP environment.
I am using debconf-set-selections
to set options before installing mysql, phpmyadmin, etc ...
It works mainly great. But the problem is that I have to set an empty password for mysql and it still asks for the password during installation even with the lines typed before :
echo "mysql-server-5.5 mysql-server/root_password password" | debconf-set-selections
echo "mysql-server-5.5 mysql-server/root_password_again password" | debconf-set-selections
Currently, it is possible to do this, but it's a little tricky.
You have to explicitly set quotes to mark an empty password, like this:
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password \"''\""
Just tested on Ubuntu 15.10, works like a charm.
The recommended approach for setting an empty password during mysql-server
's package installation process using debconf-set-selections
depends on the package version in hand.
MySQL 5.7
Although it's possible to configure the password to be empty, the installation process will automatically enable the authentication plugin auth_socket
in such a case. Hence, the password-less login shall be conditioned on using UNIX
socket based authentication (e.g. requiring the login to be made from the user account root
on the local machine).
For the package provided by the MySQL APT repository:
sudo debconf-set-selections <<< "mysql-community-server mysql-community-server/root-pass password "
sudo debconf-set-selections <<< "mysql-community-server mysql-community-server/re-root-pass password "
For the package provided by the Ubuntu package repositories:
sudo debconf-set-selections <<< "mysql-server mysql-server/root-password password "
sudo debconf-set-selections <<< "mysql-server mysql-server/root-password_again password "
MySQL 5.5 and MySQL 5.6
The solution suggested by this answer should work, with a minor addition that confirms the empty password:
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password \"''\""
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password \"''\""
If all approaches fail, it's possible to circumvent the issue and implicitly leave the password blank by preventing debconf
from asking the user for a password altogether. Unfortunately, this applies to all questions, rather than just the password-related ones.
Here are two methods that achieve the desired result:
Set debconf
's frontend to noninteractive
:
DEBIAN_FRONTEND=noninteractive apt-get install [-y] [-q] mysql-server
Set debconf
's priority level to critical
:
DEBIAN_PRIORITY=critical apt-get install [-y] [-q] mysql-server
This method is probably preferable as it permits the display of critical messages.
i think that your problem is that right before 'password' you need to add the word 'string' like this:
echo "mysql-server-5.5 mysql-server/root_password string password" | debconf-set-selections
btw this does the same thing but i think its cool:
debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password string password"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With