How to restore the debian-sys-maint MySQL user

My last post looked at how to fix ERROR 1045 (28000): Access denied for user ‘debian-sys-maint’@’localhost’ on MySQL and this article shows how to restore the debian-sys-maint user if you’ve accidentally deleted it. I accidentally deleted the user myself when I reset a MySQL database using the /usr/bin/mysql_install_db script.

The SQL Query

Log into MySQL as the root user and run the following SQL query, substituting PASSWORD-HERE for the actual plain text password which is the same as the password in the /etc/mysql/debian.conf file:

INSERT INTO `user` (
	 `Host`,
	 `User`,
	 `Password`,
	 `Select_priv`,
	 `Insert_priv`,
	 `Update_priv`,
	 `Delete_priv`,
	 `Create_priv`,
	 `Drop_priv`,
	 `Reload_priv`,
	 `Shutdown_priv`,
	 `Process_priv`,
	 `File_priv`,
	 `Grant_priv`,
	 `References_priv`,
	 `Index_priv`,
	 `Alter_priv`,
	 `Show_db_priv`,
	 `Super_priv`,
	 `Create_tmp_table_priv`,
	 `Lock_tables_priv`,
	 `Execute_priv`,
	 `Repl_slave_priv`,
	 `Repl_client_priv`,
	 `Create_view_priv`,
	 `Show_view_priv`,
	 `Create_routine_priv`,
	 `Alter_routine_priv`,
	 `Create_user_priv`,
	 `ssl_type`,
	 `ssl_cipher`,
	 `x509_issuer`,
	 `x509_subject`,
	 `max_questions`,
	 `max_updates`,
	 `max_connections`,
	 `max_user_connections`
 )
 VALUES (
	 'localhost',
	 'debian-sys-maint',
	 password('PASSWORD-HERE'),
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'Y',
	 'N',
	 'N',
	 'N',
	 'N',
	 'N',
	 '',
	 '',
	 '',
	 '',
	 0,
	 0,
	 0,
	 0
	 );
 FLUSH PRIVILEGES;

 And that’s all there is to it.