これについていくつかのスレッドがあることは知っていますが、私はすべてを試しましたが、私は機知に富んでいます.EC2でホストされているMySQLデータベースに接続できるようにしたいだけです.
EC2 のインスタンスのセキュリティ グループにポート 3306 を追加しました。
my.cnf ファイルから bind_address (skip-networking はデフォルトで使用されなくなりました) を削除し、MySQL を再起動しました。また、代わりに bind_address=(外部 IP、54 で始まる) と bind_address=0.0.0.0 も試しました。
UFW ステータスは非アクティブです。
サーバー上で、次を実行します。
mysql -u remote-user -p -h MY_EXTERNAL_IP
動作します!しかし、クライアントからは機能しません。次のようになります。
`ERROR 2003 (HY000): Can't connect to MySQL server on 'MY_EXTERNAL_IP' (111)`
現在の MySQL ユーザーを次のように作成しました。
GRANT USAGE ON *.* TO 'remote-user'@'localhost' IDENTIFIED BY 'password';
GRANT USAGE ON *.* TO 'remote-user'@'%' IDENTIFIED BY 'password';
私も走った:
sudo iptables -P INPUT ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
Telnet が接続しない:
echo X | telnet -e X MY_EXTERNAL_IP 3306
telnet: Unable to connect to remote host: Connection refused
ただし、ssh ポートには接続します。
Trying 54.221.103.104...
Connected to 54.221.103.104.
そしてnetstat -a | grep 'mysql'
与えます:
tcp 0 0 *:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 20762 /var/run/mysqld/mysqld.sock
お願いします、私は頭がいっぱいです。これの何が問題なのかわかりません。何時間も取り組んできました。