preconfigure an empty password for mysql via 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 usingUNIX
socket based authentication (e.g. requiring the login to be made from the user accountroot
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 \"''\""
A fallback solution
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 tononinteractive
:DEBIAN_FRONTEND=noninteractive apt-get install [-y] [-q] mysql-server
Set
debconf
's priority level tocritical
: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"