解決策 1:
<ブロック引用>debian-sys-maint は何に使用されますか?
これが使用される主な目的の 1 つは、サーバーにログをロールするように指示することです。少なくともリロードとシャットダウンの権限が必要です。
ファイル /etc/logrotate.d/mysql-server を参照してください
/etc/init.d/mysql
で使用されます サーバーの状態を取得するスクリプト。サーバーを正常にシャットダウン/再ロードするために使用されます。
以下は 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.
<ブロック引用> 紛失した後に復元する最も簡単な方法は何ですか?
最良の計画は、単にそれを失わないことです。本当にパスワードを紛失した場合は、別のアカウントを使用してリセットしてください。 mysql サーバーのすべての管理者権限を失った場合は、ガイドに従ってルート パスワードをリセットし、debian-sys-maint
を修復します。 .
このようなコマンドを使用して、後でアカウントを再作成するために使用できる SQL ファイルを作成できます。
mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql
<ブロック引用> /etc/mysql/debian.cnf のパスワードは既にハッシュ化されていますか
インストール時にパスワードはハッシュ化/暗号化されませんが、新しいバージョンの mysql には資格情報を暗号化する方法があります (https://serverfault.com/a/750363 を参照)。
解決策 2:
debian-sys-maint ユーザーはデフォルトでrootと同等です .これは、Debian システムの特定のメンテナンス スクリプトで使用され、副作用として、ボックスで root アクセス権を持つユーザーが /etc/mysql/debian.cnf の平文パスワードを表示できるようにします (良いか悪いか?)
次の方法でユーザーを再作成できます:
GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;
パスワードが一致していることを確認してください /etc/mysql/debian.cnf にあります
解決策 3:
次のこともできます:
sudo dpkg-reconfigure mysql-server-5.0
これにより、debian-sys-maint ユーザーを再作成するオプションが提供されます。既存のユーザーとデータベースは安全です。
解決策 4:
コメントしたかったのですが、正しい構文だと思います 独自のエントリに値します。これにより、debian-sys-maint が作成されます ユーザー:
mysql> GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'plaintextpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
/etc/mysql/debian.cnf ファイルがまだある場合は、そこにあるパスワードを使用してください。
もっとパラノイアを考えてみてください 安全なソリューション
解決策 5:
debian-sys-maint
を追加する必要がある場合 logrotate.d
だけのユーザー すべきではありません ALL PRIVILEGES
を付与 または GRANT OPTION
-- これは不必要な巨大なセキュリティ ホールです。代わりに、 RELOAD
でユーザーを追加するだけです このような特権 (root
としてデータベースにアクセスしていると仮定します) 、xxxxxx をパスワードに置き換えます)
# 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;
2019 アップデート
この回答は古くなっている可能性があります -- 以下の強い意見のコメントをご覧ください。