On a fresh install of Ubuntu 16.04, I ran the official virtualmin install script. It installs MySQL 5.7.12. The password is blank because the "auth_socket" auth plugin is used. This can be viewed by running the query
select user,plugin,plugin,host,hex(authentication_string) from mysql.user;
The normal operation of Virtualmin is not impacted, so many will not notice this issue. It just prevents other programs without OS root privileges from logging in to MySQL as the user root. This is confusing because Virtualmin asks for a mysql root password, but it then doesn't use it.
What I expected:
Virtualmin to either not ask me to set a root password at all (and then use the auth_socket) or to actually use the password that I supplied.
MySQL password syntax changed after 5.7.6 (http://dev.mysql.com/doc/refman/5.7/en/set-password.html). Perhaps this is the root issue?
alter user 'root'@'localhost' identified with mysql_native_password by 'yourpassword';