上記のライアンが指摘したように、必要なコマンドは
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password';
ただし、ドキュメントには、これが機能するために、localhost
の別のユーザーアカウントが示されていることに注意してください。 同じユーザー用に作成する必要があります。それ以外の場合は、mysql_install_db
によって自動的に作成された匿名アカウント より具体的なホスト列があるため、優先されます。
言い換えると;ユーザーuser
の場合 任意のサーバーから接続できるようにする。次のように2つのアカウントを作成する必要があります。
GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password';
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password';
こちら の完全なドキュメントをお読みください。
そして、参考のために関連する部分があります:
rootとしてサーバーに接続した後、新しいアカウントを追加できます。次のステートメントでは、GRANTを使用して4つの新しいアカウントを設定します。
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';
これらのステートメントによって作成されたアカウントには、次のプロパティがあります。
2つのアカウントのユーザー名はmontyで、パスワードはsome_passです。どちらのアカウントも、何でもできる完全な権限を持つスーパーユーザーアカウントです。 'monty' @'localhost'アカウントは、ローカルホストから接続する場合にのみ使用できます。 'monty' @'%'アカウントは、ホスト部分に'%'ワイルドカードを使用するため、任意のホストから接続するために使用できます。
モンティとしてどこからでも接続できるようにするには、モンティの両方のアカウントが必要です 。 localhostアカウントがないと、montyがローカルホストから接続するときに、mysql_install_dbによって作成されたlocalhostの匿名ユーザーアカウントが優先されます。その結果、montyは匿名ユーザーとして扱われます。これは、anonymous-userアカウントのHost列の値が'monty' @'%'アカウントよりも具体的であるため、ユーザーテーブルの並べ替え順序が早いためです。 (ユーザーテーブルの並べ替えについては、6.2.4項「アクセス制御、ステージ1:接続の検証」で説明しています。)