69 votos

¿Qué es el usuario de MySQL de debian-sys-maint (y más)?

He sido mordido varias veces por el usuario 'debian-sys-maint' que está instalado por defecto en los paquetes mysql-server instalados desde los repositorios de Ubuntu.

Generalmente lo que sucede es que saco una copia fresca de nuestra base de datos de producción (que no está corriendo en Debian/Ubuntu) para la solución de problemas o nuevos desarrollos y olvido excluir la tabla mysql.user, perdiendo así el usuario debian-sys-maint.

Si añadimos nuevos usuarios de mysql por cualquier razón, tengo que "fusionarlos" en mi entorno de desarrollo en lugar de simplemente superponer la tabla.

Sin el usuario mi sistema todavía parece funcional, pero plagado de errores como:

sudo /etc/init.d/mysql restart
Stopping MySQL database server: mysqld...failed.
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
  • ¿Para qué se usa el Debian-Sys-Mint?
    • ¿Hay una mejor manera de que los mantenedores de paquetes hagan lo que están tratando de hacer?
  • ¿Cuál es la forma más fácil de restaurarlo después de haberlo perdido?
  • ¿Cuál es el conjunto correcto/mínimo de privilegios para este usuario?
    • Parece una mala idea 'conceder todos los privilegios en *.* ...'

Edita

Pregunta adicional - ¿La contraseña en /etc/mysql/debian.cnf ya está en hash o es la contraseña en texto plano? Importa cuando vas a recrear el usuario y parece que nunca lo consigo en el primer intento.

Gracias

59voto

Zoredache Puntos 84524

¿Para qué se usa el Debian-Sys-Mint?

Por defecto, se usa para decirle al servidor que ruede los registros. Necesita al menos el privilegio de recargar y apagar.

Vea 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 o recargar 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 fácil de restaurarlo después de que lo pierda?

El mejor plan es simplemente no perderlo.

Podrías usar un comando como este para construir un archivo sql que puedes usar más tarde para recrear la cuenta.

mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql

¿La contraseña está en /etc/mysql/debian.cnf ya se ha hecho

La contraseña no se ha hecho pública.

20voto

d-_-b Puntos 705

Sólo quería comentar, pero creo que sintaxis correcta se merece su propia entrada. Esto creará la 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 tienes el archivo /etc/mysql/debian.cnf, usa la contraseña que está ahí.

Siéntete libre de pensar en una más paranoico solución segura.

2voto

lindelof Puntos 9802

Como nota al margen de esto, eche un vistazo a este post del mysqlperformanceblog por razones que podrían querer desactivar las cosas específicas de Debian.

1voto

Kristof Provost Puntos 12359

Ahora, la unidad es el promedio de WM. Pero, en mi opinión, la Canónica mejorará su Unidad todo el tiempo hasta el 11.04. Aunque serán mejoras menores, Natty tendrá una nueva Unidad. No la Unidad que conocemos. Este WM será la dirección de trabajo de la Canónica durante estos 6 meses. Así que les recomendaré que esperen hasta Natty, donde habrá muchos cambios y mejoras sobre la Unidad.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: