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.