I certainly disagree that this qualifies as "very clear". The user asked to have mysql installed and the very first item on the list of stuff-to-be-installed is called "default-mysql-server". That certainly sounds like positive confirmation that you are indeed getting what you asked for.
Now, if you keep reading, you will see "mariadb-server-10.1" and stuff on that list, and if you also know two pieces of information (that mariadb is a fork of mysql, and that someone at Debian contemplated the idea of substituting one for the other), then you can see that you may have concluded the wrong thing and you can backtrack from there. Though really, at this point you still have conflicting information and it isn't conclusive.
So, I wouldn't say "very clear" is accurate. More like "possible to decipher if you have all the relevant context and are paying close attention".
As UIs go, this definitely violates the principle of least astonishment.
(though I don't buy this was an enough excuse for GP in this specific case because it becomes clear at the moment you run `mysql' command)
If Debian doesn't have a piece of software, it shouldn't update it. It should leave it alone.
(And bear in mind, I was working from a script, so unless I sit there reading every line while it builds the VM, all of this unauthorized breakage of my machine is silent and without consulting me.)
And of course, the response to "man mysql" makes no sense, because MariaDB is not MySQL.
> And of course, the response to "man mysql" makes no sense, because MariaDB is not MySQL.
MariaDB was supposed to be a drop-in replacement. This is why Debian (and other distros like Fedora) chose to name it and help transition of existing users. Distributions tried their best to make it as painless as possible. Sorry it wasn't the case for you but I guess it still helped more people than it hurt.
> (And bear in mind, I was working from a script, so unless I sit there reading every line while it builds the VM, all of this unauthorized breakage of my machine is silent and without consulting me.)
It was documented in Release Notes [0]. You should've read it before upgrading your script. It is always a good idea to read it regardless of this specific issue.
Even if you didn't read release notes, banner text of `mysql' command makes it very clear it's MariaDB:
$ mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
[0]: https://www.debian.org/releases/stable/amd64/release-notes/c..."Supposed to" is a key point here, cause it's not: Explain works different if you need a certain thread info, AFAIK no JSON data type, GIS functions are different, lots of subtle differences that will bite you in the arse if you presume it's exactly the same engine. And as the time goes by the list of differences is just growing.
It was allowed to stay in unstable:
https://packages.debian.org/sid/mysql-server-5.5
However, the maintainers are uninterested in maintaining it there, since the release and security team have overrode them and forcibly removed it from stable.
mysql-server package installs mariadb so that they can handle upgrades gracefully in a way that won't leave existing users in cold.
They would choose to do it the way you said but then the people who are upgrading their systems would be annoyed instead of you. Tough choice but either way it's a minor annoyance to be honest.
Addition:
Also it's not as if it isn't very clear what you're installing:
It is not aim of distribution maintainers to hide facts or make you use counterfeit programs, they just want to help users with transition.