エラー 1396 (HY000): 'jack'@'localhost' の CREATE USER 操作が失敗しました 質問する

エラー 1396 (HY000): 'jack'@'localhost' の CREATE USER 操作が失敗しました 質問する

MySQL で root としても、削除した単純なユーザーを再作成できないようです。

私の場合: ユーザー「jack」は以前存在していましたが、再作成するために mysql.user から削除しました。そのテーブルにはこの痕跡は見当たりません。このコマンドを他のランダムなユーザー名、たとえば「jimmy」に対して実行すると、正常に動作します (「jack」に対して最初に動作したときと同じように)。

ユーザー「jack」を破損させるために何をしましたか? また、この MySQL インストールの有効なユーザーとして「jack」を再作成するために、その破損を元に戻すにはどうすればよいですか?

以下の例を参照してください。(もちろん、もともと「ジャック」が作成されてから削除されるまでには長い時間がかかりました。)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jack             | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
4 rows in set (0.00 sec)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost'
mysql> CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jimmy            | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

ベストアンサー1

はい、このバグは存在します。ただし、小さな回避策を見つけました。

  • ユーザーがそこにいると仮定して、ユーザーを削除します
  • ユーザーを削除した後、mysql権限をフラッシュする必要があります。
  • 次にユーザーを作成します。

これで解決するはずです。ユーザー admin @ localhost を作成すると仮定すると、コマンドは次のようになります。

ユーザー admin@localhost を削除します。
権限をフラッシュします。' admins_password '

で識別されるユーザー admin@localhost を作成します。

おすすめ記事