リモートの Ubuntu マシンに MySQL サーバーをインストールしました。root
ユーザーは、mysql.user
テーブルで次のように定義されます。
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
標準クライアントroot
を使用して、同じリモート マシンのコマンド ライン インターフェイスからuser でアクセスできます。ここで、インターネット上のすべてのホストからのルート アクセスmysql
を許可したいので、次の行を追加してみました (列を除いて、以前のダンプの最初の行とまったく同じです)。host
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
しかし、私の個人用 PC のクライアントは、引き続き次のように伝えます (サーバー IP を隠しました)。
SQL エラー (2003): '46.xxx' の MySQL サーバーに接続できません (10061)
認証エラーなのかネットワークエラーなのかわかりません。サーバーのファイアウォールで 0.0.0.0/0 のポート 3306/TCP を有効にしましたが、それで問題ありません...