Solución 1:
¿Para qué se usa debian-sys-maint?
Una cosa importante para la que se usa es decirle al servidor que ruede los registros. Necesita al menos el privilegio de recargar y apagar.
Ver el archivo /etc/logrotate.d/mysql-server
Es utilizado por el /etc/init.d/mysql
script para obtener el estado del servidor. Se utiliza para apagar/recargar correctamente el servidor.
Aquí está la cita de README.Debian
* MYSQL WON'T START OR STOP?:
=============================
You may never ever delete the special mysql user "debian-sys-maint". This user
together with the credentials in /etc/mysql/debian.cnf are used by the init
scripts to stop the server as they would require knowledge of the mysql root
users password else.
¿Cuál es la forma más fácil de restaurarlo después de haberlo perdido?
El mejor plan es simplemente no perderlo. Si realmente pierde la contraseña, reiníciela usando otra cuenta. Si ha perdido todos los privilegios de administrador en el servidor mysql, siga las guías para restablecer la contraseña de root y luego repare el debian-sys-maint
.
Podría usar un comando como este para crear un archivo SQL que pueda usar más tarde para volver a crear la cuenta.
mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql
¿La contraseña en/etc/mysql/debian.cnf ya está cifrada?
La contraseña no está codificada ni cifrada cuando se instala, pero las nuevas versiones de mysql ahora tienen una forma de cifrar las credenciales (ver:https://serverfault.com/a/750363).
Solución 2:
debian-sys-maint el usuario es por defecto un equivalente raíz . Ciertos scripts de mantenimiento lo utilizan en los sistemas Debian y, como efecto secundario, permite a los usuarios con acceso raíz en el cuadro ver la contraseña en texto sin formato en /etc/mysql/debian.cnf (¿buena o mala?)
Puede volver a crear el usuario:
GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;
Solo asegúrate de que la contraseña coincida que en /etc/mysql/debian.cnf
Solución 3:
También podrías:
sudo dpkg-reconfigure mysql-server-5.0
Lo que le dará la opción de recrear el usuario debian-sys-maint. Los usuarios y las bases de datos existentes están seguros.
Solución 4:
Solo quería comentar, pero creo que sintaxis correcta merece su propia entrada. Esto creará el debian-sys-maint usuario:
mysql> GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'plaintextpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
Si aún tiene el archivo /etc/mysql/debian.cnf, simplemente use la contraseña allí.
Siéntete libre de pensar en algo más paranoico solución segura.
Solución 5:
Si necesita agregar el debian-sys-maint
usuario solo por logrotate.d
propósitos, usted no debe otorgar ALL PRIVILEGES
o el GRANT OPTION
-- este es un agujero de seguridad gigante innecesario. En su lugar, puede simplemente agregar al usuario con el RELOAD
privilegio como este (asumiendo que está accediendo a su base de datos como root
y reemplaza xxxxxx con su contraseña)
# add the user with the reload right
GRANT RELOAD on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxxx';
# reload the rights
FLUSH PRIVILEGES;
# double check
select * from mysql.user;
Actualización de 2019
Es posible que esta respuesta esté desactualizada; consulte los comentarios de opiniones fuertes a continuación.