MySQLユーザー削除バグを解決する

MySQLユーザー削除バグを解決する

著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに気付きました。

私は強迫性障害を患っており、それを変更する必要がありますが、ユーザーを削除するとコマンドが成功することがわかりました。

ただし、同じ名前のユーザーを作成すると、エラーが報告されます。インターネットでいろいろ調べたところ、これはMySQLの公式バグであることがわかりました。作者がバグを理解するのが下手なのか、本当にこの問題を解決したのかはわかりません。以下に共有します。皆さん、一緒に議論してください。

ユーザーを削除した後、同じユーザー名を再度作成することはできません。

MySQL データベースには、すべてのユーザーとユーザー情報を照会できるユーザー テーブルがあります。ユーザー情報とユーザーに付与した権限を削除することで、ユーザーを完全に削除できます。

回避策

複数のユーザーの権限を数回削除した後、このユーザーを作成したときに % がリモート接続を許可していたため、最後の削除が成功したことがわかりました。

ユーザー権限の更新

権限のフラッシュ;

このとき、同じ名前のユーザーを再度作成しても、mysql はエラーを報告しません。

補足: mysql のユーザー削除 (2 つの実装ソリューション)

落とす

drop user XXX; は既存のユーザーを削除します。デフォルトでは、ユーザー 'XXX'@'%' が削除されます。'XXX'@'localhost' などの他のユーザーが存在する場合、それらは一緒に削除されません。 'XXX'@'localhost' を削除する場合は、drop を使用するときにホストを追加する必要があります。つまり、drop user 'XXX'@'localhost' です。

消去

user='XXX' かつ host='localhost' の場合、user から削除します。XXX はユーザー名、localhost はホスト名です。

違い

ドロップすると、ユーザー テーブル内のデータが削除されるだけでなく、他の権限テーブルの内容も削除されます。 Delete ではユーザー テーブルの内容のみが削除されるため、delete を使用してユーザーを削除した後は、FLUSH PRIVILEGES; を実行して権限を更新する必要があります。そうしないと、次に create ステートメントを使用してユーザーを作成するときにエラーが報告されます。

補足: mysql ユーザー作成エラーの解決方法 [Err] 1396 - 'test'@'%' に対する CREATE USER 操作が失敗しました

質問:

mysql create user文CREATE USER test IDENTIFIED BY 'test'を実行します。エラーが報告され、エラーメッセージは次のようになります。

[エラー] 1396 - 'test'@'%' の CREATE USER 操作が失敗しました

解決手順:

1. テストユーザーを作成します。

2. クエリでそのようなユーザーが存在しないことが示された場合は、FLUSH PRIVILEGES を実行し、作成ステートメントを再実行します。

3. それでもエラー メッセージが表示される場合は、drop user 'test'@'%'; を実行してから、create ステートメントを再実行します。

4. 作成に成功しました。

考えられる原因:

1. ユーザーは既に存在します。

2. delete ステートメントを使用してユーザーを削除した後、更新権限がありません。

3. ユーザーは存在しませんが、ユーザーの権限情報は存在します。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明
  • MySQL ベストプラクティス: パーティションテーブルの基本タイプ
  • MySQL パーティション テーブルの基本入門チュートリアル
  • MySQL 最適化パーティションテーブル
  • MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ
  • MySQLにバグが存在する
  • CentOS インストール PHP5.5+Redis+XDebug+Nginx+MySQL 完全記録
  • MySQL パーティション テーブルに関するパフォーマンス バグ

<<:  ウェブデザインの経験とスキルの概要

>>:  shtml includeの使い方

推薦する

Web デザインのための 5 つのシンプルな XHTML Web フォーム

Web デザイン 5 におけるシンプルな XHTML Web フォーム。 テクニック 1: ラベル ...

Windows Server 2008R2、2012、2016、2019 の違い

目次共通バージョンの紹介共通バージョンのダウンロードアドレスとインストール以下に簡単な違いを示します...

HTMLページ内の検索機能を完了する

最近、たくさんの人に改変してもらったフレームワークに取り組んでいます。毎日コードを見ていると目が回り...

Tomcatを自動的に開始するサービスとして設定するにはどうすればいいでしょうか?最も簡単な方法

Tomcat が自動的にサービスを開始するように設定します。最近、問題が発生しました。サーバー上のプ...

VirtualBox+Ubuntu16でKubernetesクラスタを構築する実装

目次Kubernetesについて基本的な環境の準備VirtualBoxをインストールするUbuntu...

HTMLの最適化によりWebページの速度が向上

明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...

docker と docker-compose による eureka の高可用性の実現の詳細な説明

最近、新しいプロジェクトでは springcloud と docker が使用されています。この 2...

CSS カウンターとコンテンツの概要

コンテンツ プロパティは CSS 2.1 で導入され、:before および :after 疑似要素...

HTML Webページの例を使用してヘッドエリアコードの意味を説明する

例を使って、Webページのヘッダー情報の意味を理解しましょう。 <!DOCTYPE HTML ...

MySql における特殊演算子の使用の概要

序文MySQL には次の 4 種類の演算子があります。算術演算子比較演算子論理演算子ビット演算子これ...

Vueリスナーの使用例の詳細な説明

1つ目はjQueryのajaxを使用してリクエストを送信することです ユーザーが登録するときに、リス...

ブラインドの特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたブラインドの特殊効果を紹介します。効果は次のとおりです。...

マウスを動かしたときにセカンダリメニューバーを実装するために HTML+CSS を使用する例

この記事では、マウスを動かしたときにセカンダリ メニュー バーを実装するために HTML+CSS を...

Vue の計算プロパティの詳細な説明

目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...

Helloダイアログボックスのデザイン体験の共有

「どうしたの?」特定の種類のダイアログ ボックスに慣れていない限り、ダイアログ ボックスが表示された...