3

CentOS 6.4 サーバーに MySQL をインストールしました。root にログインし、パスワードを変更しました。

golden後で、新しいユーザーを作成し、そのユーザーをデフォルトのユーザーとして使用する必要があると考えたので、次のコマンドを使用して新しいユーザー名を作成しました。

CREATE USER 'golden'@'%' IDENTIFIED BY 'password';

次に、ユーザーに許可を適用しましたgolden

GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';

FLUSH PRIVILEGES;

今、このユーザー:goldenはすべてを行うことができました。だから私はついにDeleted the root user。今、私は別の新しいユーザーに権限を付与することに行き詰まっています。

ログインしたときに別のユーザーを作成しましたgolden(この時点で、rootユーザーとコマンドが正常に作成され、新しいユーザーがリストに表示されます)

CREATE USER 'fashion'@'%' IDENTIFIED BY 'password';

次に、以下のコマンドでエラーが発生します。

GRANT ALL PRIVILEGES ON *.* TO 'fashion'@'%';

エラー:エラー 1045 (28000): ユーザー 'golden'@'%' のアクセスが拒否されました (パスワードを使用: YES)

次のコマンドも試しましたが、結果は以下のとおりです。

mysql> SELECT USER(),CURRENT_USER();
+------------------+----------------+
| | ユーザー() | CURRENT_USER() |
+------------------+----------------+
| | ゴールデン@localhost | ゴールデン@% |
+------------------+----------------+

このユーザーにアクセス権を付与できない場合、どうすればログインしてデータベースを使用できますか? 親切に助けてください。

編集1:次のコマンドは、次の結果をもたらします

mysql> mysql.user からユーザー、ホストを選択します。
+------------+-------+
| | ユーザー | ホスト |
+------------+-------+
| | ゴールデン | % |
| | ファッション | % |
+------------+-------+
4

3 に答える 3

6

rootまず、ユーザーを削除した理由が想像できません。しかし、質問に戻りますWITH GRANT OPTION。次のように指定する必要があります。

root(ただし、アクセス権がなく、ユーザーにも十分な権限がないかのように、mysql を再インストールした後にこれを選択する必要があります。その場合、インストール プロセスを再起動し、ユーザーを作成して付与するのが最善です。特権は以下で定義されている方法)

mysql> 'password' で識別されるユーザー 'golden'@'localhost' を作成します。
クエリ OK、影響を受ける行は 0 (0.00 秒)

mysql> *.* に対するすべての権限を、grant オプションを使用して golden@localhost に付与します。
クエリ OK、影響を受ける行は 0 (0.00 秒)

mysql> 権限をフラッシュします。
クエリ OK、影響を受ける行は 0 (0.00 秒)

その後

mysql> current_user() を選択します。
+------------------+
| | current_user() |
+------------------+
| | ゴールデン@localhost |
+------------------+
セットで 1 行 (0.00 秒)

mysql> データベースのテストを作成します。
クエリ OK、影響を受ける 1 行 (0.03 秒)

mysql> testing.* に対するすべての権限を test に付与します。
クエリ OK、影響を受ける行は 0 (0.02 秒)

mysql> データベースのテストを削除します。
クエリ OK、影響を受ける行は 0 (0.12 秒)

root-しかし、ユーザーを削除する前によく考えてください。

于 2013-10-07T08:34:56.100 に答える
2

これを試しましたか?

update mysql.user set grant_priv='Y' where user='golden';
flush privileges;

次に終了し、ゴールデン ユーザーとしてデータベースに再接続します。

于 2013-10-07T10:26:49.017 に答える