If you want to do command-line MySQL administration like restoring databases or dumping statistics, you need the root account and it's password. Or do you?
On Ubuntu / Debian, you don't. This is usefull if you
- Have lost your password (reset it this way)
- Want to automate tasks (it's a bad idea to pass around root passwords)
So How Does This Work
Well normally you would access MySQL like this right?
$ mysql -h localhost -u root -p
# Enter password: XYZ
Or you can automate it by supplying it in the same command:
$ mysql -h localhost -u root -pXYZ
Pretty messy if you ask me.
What a lot of people don't know is that there is an account that's used by debian related systems to restart the service, perform checks, etc.
The account is called debian-sys-maint
, it's credentials are stored in /etc/mysql/debian.cnf
and if you have root access on a database server's shell you're in business. You can either look up the account, or tell mysql to do it for you:
$ mysql --defaults-file=/etc/mysql/debian.cnf
And Bob's your uncle.