SSHトンネル経由でAWS上のmysqlに接続できない

SSHトンネル経由でAWS上のmysqlに接続できない

私は分解しようとしているタスクrubymine で AWS デバッグを小さなチャンクに分割する方法。AWS で実行されている mysql サーバーに接続したいので、次の操作を実行しました。

初め:ポート 3307 へのすべての localhost リクエストを AWS のポート 3306 に転送するための SSH トンネルを確立します。

ssh -l ubuntu -i 'path/to/private/key/privateKey.cer' -L 3307:aws.port:3306 aws.port -N -v -v

2番目:ポート3307でmysqlに接続する

mysql -h 127.0.0.1 -P 3307 -u root -p 

問題: ホストマシン上で次のエラーが発生して失敗します。

ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server

AWS のログには次のように出力されます。

debug1: Connection to port 3307 forwarding to 54.193.1.19 port 3306 requested.
debug2: fd 7 setting TCP_NODELAY
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug2: channel 2: zombie
debug2: channel 2: garbage collecting
debug1: channel 2: free: direct-tcpip: listening port 3307 for 54.193.1.19 port 3306, connect from 127.0.0.1 port 64938, nchannels 3

ノート:

  • 接続先のAWSサーバーのセキュリティグループがsshポート22での接続を許可していることを確認しました
  • /etc/hosts.denyAWS に localhost または 127.0.0.1 がリストされていないことを確認しました。

アイデアは?

答え1

エラーメッセージ

ERROR 1130 (HY000): Host '178.135.138.61' is not allowed to connect to this MySQL server

MySQLからのアクセスです。ユーザーrootのリモートアクセスを許可するには、mysqlサーバー上の特定のデータベースに対してこれを明示的に許可する必要があります。

mysql -u root -p
mysql> grant all privileges on somedatabase.* to 'root'@'178.135.138.61' identified by 'somepassword';
mysql> flush privileges;

これにより、ユーザー名 root は、somedatabase のすべての権限を使用して 178.135.138.61 から mysql に接続できるようになります。

おそらく、MySQL セキュリティドキュメント特にアクセス制御そしてユーザー管理章。

関連情報