AWS上のMySQL DBにアクセスするローカルマシンで開発環境をセットアップしようとしていますが、「接続できません」というメッセージが引き続き表示されます。
mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');
また、my.cnfファイルのbind-addressをコメント化し、接続しているIPアドレスへのアクセス許可を付与しました。
誰でもこれをうまく機能させることができますか?
これはAmazonによってファイアウォールで保護されていると思われます。SSHトンネルを使用してみてください。
http://blogs.Oracle.com/divyen/entry/connecting_mysql_server_on_Amazon
注:IPフィルタリングを使用している場合でも、MySQLをパブリックインターネットに開かないでください。 SSHトンネルはより安全です。その最良の部分:トンネルは、マシン上のlocalhost:3306でアクセスでき、構成を変更する必要はありません:)
Elastic Beanstalkで作成されたRDSインスタンスの2013年8月の私の経験は次のとおりです。
0)RDSインスタンスがすでに作成されていると仮定
1)管理コンソールにログインします:https://console.aws.Amazon.com/console/home
2)[サービス]-> [VPC]を選択します
3)セキュリティグループを選択します(左側)
4)「RDS DBのセキュリティグループ...」という説明のグループを選択します
5)ページの下部にある[選択したセキュリティグループ]パネルで、[受信]を選択します
6)ルールとしてMySQLを選択します。
7)ローカルマシンのIPアドレスを入力します。 145.23.32.15/32
8)[ルールの追加]をクリックし、ルールの変更を適用します
これを実行した後、ローカルマシンからmysqlを使用してデータベースに接続できました。
a)管理コンソールから「サービス」->「RDS」を選択します
b)DBインスタンス(私は1つしかありません)をクリックし、必要なインスタンスの[詳細ページに移動]を選択します
c)エンドポイントからホストとポートを取得します
d)ターミナルセッションから次のようなことを行います。mysql --Host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u my-user-name -p
RDSインスタンスを介してAWSでMySqlを使用している場合、接続するIPアドレスを「DBセキュリティグループ」に追加する必要があります。これを行うには、AWS Managment Consoleに移動し、RDSを選択します。
1。左側のパネルで[DBセキュリティグループ]を選択します
2。 「デフォルト」を選択
3。選択ボックスから「CIDR/IP」を選択し、ワークステーションのパブリックIPアドレスを入力します。例:
23.234.192.123/32(単一のIPの/ 32を忘れないでください)
4。 「追加」をクリックします
5。数分待ってから、MySqlクライアントを接続します。
これはRDSインスタンスにのみ適用されます。EC2インスタンスにインストールされたMySqlを使用している場合、手順はリモートマシンからMySqlにアクセスするのと同じです。
私はMySQL Workbench http://www.mysql.com/products/workbench/ をRDSで使用してきましたが、うまく機能します。新しいデータベースサービスインスタンスの作成と保存は非常に簡単です。 [サーバー管理]の下の[新しいサーバーインスタンス]をクリックし、プロンプトに従います。そのインスタンスのAWS RDSウェブページで提供される情報(たとえば、エンドポイント)を入力する必要があります。
注:実際に接続するには、「DBセキュリティグループ」にIPアドレスを追加する必要があります。リンクは左側の列にあり、「ナビゲーション」というタイトルが付いています。 「CIDR/IP」オプションを使用します(もう1つはEC2 Security Groupです)。 IPの後に、例で使用する「/ 32」などの「/ ##」を必ず含めてください(ページに表示されます)。数秒で、IPアドレスが承認されます。
その後、MySQL Workbenchに戻り、新しいサーバーインスタンスの作成プロセスを完了します。
接続を使用するには、コードは次のようになります(my Java code)の抜粋):
String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
私はWindows 7マシンを使用していますが、AWS RDBに接続するには、次の3つの変更を行う必要がありました。
AWSコンソールでのVPCセキュリティグループの更新(mikemayの上記と同様)
ローカルMySQL構成のmy.cnf更新
Windowsファイアウォールをオフにする
これらの変更後、私は両方を介して接続することができます
コマンドプロンプト
mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
RDSを作成する場合、ローカルまたは他のインスタンスからのmySQL接続を受け入れるようにファイアウォールを構成する必要があります。そのため、パケットはファイアウォールレベルでドロップされるため、これを解決するには次のようにする必要があります。
MySQLサーバーのセキュリティグループをメモします(私の場合はawseb-e)
リストからmySQLを選択し、クライアントサーバーの詳細を追加して、ルールを保存します
注:IPを選択したら、他のIPを使用する必要がある場合は、AWSでIPを選択します
https://www.whatismyip.com/my-ip-information/
iP4 IPを追加します