Solusi 1:
Untuk apa debian-sys-maint digunakan?
Satu hal utama yang digunakannya adalah memberi tahu server untuk menggulung log. Ini membutuhkan setidaknya hak reload dan shutdown.
Lihat file /etc/logrotate.d/mysql-server
Ini digunakan oleh /etc/init.d/mysql
skrip untuk mendapatkan status server. Ini digunakan untuk mematikan/memuat ulang server dengan anggun.
Berikut adalah kutipan dari 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.
Apa cara termudah untuk memulihkannya setelah saya kehilangannya?
Rencana terbaik adalah tidak kehilangannya. Jika Anda benar-benar kehilangan kata sandi, setel ulang menggunakan akun lain. Jika Anda kehilangan semua hak istimewa admin di server mysql, ikuti panduan untuk mengatur ulang kata sandi root, lalu perbaiki debian-sys-maint
.
Anda dapat menggunakan perintah seperti ini untuk membuat file SQL yang dapat Anda gunakan nanti untuk membuat ulang akun.
mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql
Apakah kata sandi di /etc/mysql/debian.cnf sudah di-hash
Kata sandi tidak di-hash/dienkripsi saat dipasang, tetapi versi baru mysql sekarang memiliki cara untuk mengenkripsi kredensial (lihat:https://serverfault.com/a/750363).
Solusi 2:
debian-sys-maint pengguna secara default adalah setara root . Ini digunakan oleh skrip pemeliharaan tertentu pada sistem Debian, dan sebagai efek samping, memungkinkan pengguna dengan akses root pada kotak untuk melihat kata sandi plaintext di /etc/mysql/debian.cnf (baik atau buruk?)
Anda dapat membuat ulang pengguna dengan:
GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;
Cukup pastikan sandi cocok itu di /etc/mysql/debian.cnf
Solusi 3:
Anda juga bisa:
sudo dpkg-reconfigure mysql-server-5.0
Yang akan memberi Anda opsi untuk membuat ulang pengguna debian-sys-maint. Pengguna dan basis data yang ada aman.
Solusi 4:
Saya hanya ingin berkomentar, tapi menurut saya sintaks yang benar layak masuk sendiri. Ini akan membuat debian-sys-maint pengguna:
mysql> GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'plaintextpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
Jika Anda masih memiliki file /etc/mysql/debian.cnf, cukup gunakan kata sandi di sana.
Jangan ragu untuk membuat lebih banyak paranoid solusi aman.
Solusi 5:
Jika perlu tambahkan debian-sys-maint
pengguna hanya untuk logrotate.d
tujuan, Anda harus tidak berikan ALL PRIVILEGES
atau GRANT OPTION
-- ini adalah lubang keamanan raksasa yang tidak perlu. Sebagai gantinya, Anda cukup menambahkan pengguna dengan RELOAD
hak istimewa seperti ini (dengan asumsi Anda mengakses db Anda sebagai root
, dan Anda mengganti xxxxxx dengan kata sandi Anda)
# 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;
Pembaruan 2019
Jawaban ini mungkin kedaluwarsa -- silakan lihat komentar yang sangat keras di bawah ini.