デフォルト設定の mysql サーバはコンピュータのポートでリッスンします。
$ nmap -p0-65535 192.168.1.97
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-20 14:34 EDT
Nmap scan report for ocean.fios-router.home (192.168.1.97)
Host is up (0.00036s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE
22/tcp open ssh
3306/tcp open mysql
33060/tcp open mysqlx
Nmap done: 1 IP address (1 host up) scanned in 4.50 seconds
他のマシンから mysql サーバーに接続できません。
$ mysql --user=root --host=ocean --password test
Enter password:
ERROR 1130 (HY000): Host 'olive.fios-router.home' is not allowed to connect to this MySQL server
これら2つの矛盾した結果をどのように理解しますか?
mysqlサーバーは接続要求を受け取りましたが、拒否しますか?
ローカル以外の接続要求を許可しない場合、なぜTCPポートでリッスンするのですか?
ありがとうございます。
答え1
これは、MySQLがユーザーをユーザーとして扱うためです。 MySQLは、次のように作成されたユーザーとホストの組み合わせに権限を付与しますuser@host
。
以下の例はそれぞれ異なります。
GRANT ALL PRIVILEGES ON db.* TO 'user1'@'%';
GRANT ALL PRIVILEGES ON db.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON db.* TO 'user1'@'192.168.1.97';
各ユーザーとホストの組み合わせは異なるパスワードを持つことができます(...追加された場合)IDENTIFIED BY 'your-password';
より多くの例とより良い説明を見つけることができます。MySQL GRANTドキュメントから
答え2
まあ、代わりに質問を繰り返したようです。元の編集。
bind-address
他の質問で説明されているように編集した場合、サービスはこのパラメータで設定されたIPアドレス以外のIPアドレスを受信しないでください。
次に、MySQLアプリケーションレベルのアクセスも提供する必要があるため、このサーバーに接続できません。
リモートサーバーのローカルシェルからmysql
プロンプトにアクセスして、次のコマンドを実行します。
`GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';`
MySQLには、ネットワーク構成とアプリケーションレベルの認証/権限の2つの基本が欠けているようです。この技術をさらに詳しく調べてください。
Googleでもっと学びましょうERROR 1130 (HY000): Host is not allowed
。この検索の最初の結果がStackExchangeにリンクされていることに気づくと驚くでしょう。ここで:エラー1130(HY000): ''ホストはこのMySQLサーバーに接続できません。