6

この質問はよく聞かれるようですが、私は決定的な答えを見つけることができません。

MySQL を使用していくつかの webapp テストを作成しています。最初は「root」ユーザーを使用しました (パスワードが空でない)。私の root ユーザーは、アプリ (PHP および Python の Django でテスト済み)、コマンド ライン、および PHPMyAdmin から正常に動作しています。

ただし、root ユーザーを使用したくないので、別のユーザーを作成し、そのユーザーに必要なデータベースへのすべての権限を付与しました。(このタスクでは、 'root'としてログに記録された PHPMyAdmin を使用しました)。

新しいユーザーは MySQL にログインできません。Django アプリ、PHPMyAdmin、コマンド ラインのいずれからも。

2 つの疑いがあります。

  1. ユーザーに欠けているグローバル特権があります。(前述のとおり、すべてのデータベース権限を付与しましたが、グローバル権限は付与していません);

  2. ユーザーが構成したホスト。( 'root'は、ホスト'localhost''my-pc-name''127.0.0.1'および'::1'に対してmysql.userテーブルに4 行あります。一方、新しいユーザーには、ホスト'に対して 1 行あります。 %' )

(パスワードを再確認したので、これはパスワードの問題ではないと確信しています。)

4

2 に答える 2

5

% は、新しいユーザーが任意のホストからデータベースにアクセスできることを意味します。

ただし、CREATE USER ステートメントを指定すると、はるかに便利になります。

さらに、以下の MySQL マニュアルを確認してください。ユーザーが と の両方@'localhost'を使用する必要がある理由が説明されてい@'%'ます。

MySQL リファレンス マニュアル - ユーザーの追加

于 2013-04-13T14:52:08.520 に答える