Solución:
Solución 1:
¿Para qué se utiliza debian-sys-maint?
Una cosa importante para la que se utiliza es decirle al servidor que registre los registros. Necesita al menos el privilegio de recarga y apagado.
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 del 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 sencilla de restaurarlo después de haberlo perdido?
El mejor plan es simplemente no perderlo. Si realmente pierde la contraseña, reiníciela con 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, luego repare el debian-sys-maint
.
Puede usar un comando como este para crear un archivo SQL que puede 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 tiene hash?
La contraseña no está cifrada / cifrada cuando se instala, pero las nuevas versiones de mysql ahora tienen una forma de cifrar las credenciales (consulte: https://serverfault.com/a/750363).
Solucion 2:
los debian-sys-maint el usuario es por defecto un equivalente raíz. Es utilizado por ciertos scripts de mantenimiento en los sistemas Debian y, como efecto secundario, permite a los usuarios con acceso de root en la caja ver la contraseña en texto plano en /etc/mysql/debian.cnf (¿buena o mala?)
Puede volver a crear el usuario de la siguiente manera:
GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;
Solo asegúrese de que la contraseña coincida eso 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 volver a crear el usuario debian-sys-maint. Los usuarios y las bases de datos existentes están a salvo.
Solución 4:
Solo quería comentar, pero creo 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 todavía tiene el archivo /etc/mysql/debian.cnf, simplemente use la contraseña allí.
Siéntete libre de proponer más paranoico solución segura.
Solución 5:
Si necesita agregar el debian-sys-maint
usuario solo para logrotate.d
propósitos, deberías no conceder ALL PRIVILEGES
o la GRANT OPTION
– este es un agujero de seguridad gigante innecesario. En su lugar, puede agregar el 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 2019
Esta respuesta puede estar desactualizada; consulte los comentarios fuertemente opuestos a continuación.