web-dev-qa-db-ja.com

Amazon AWS Mysqlにリモート接続する

Ubuntu 14.04を実行しているAmazon AWS EC2インスタンスがあります。 MYSQL 5.5をインストールしました。

Navicatを実行しているローカルWindows10マシンから、このインスタンスで実行されているMYSQLに接続しようとしています。

envの状態:

3306はリッスンしています

netstat -an | grep 3306 -> tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

MYSQLが開始されます

ubuntu@ip-***-**-**-**:/$ Sudo service mysql status
mysql start/running, process 28015

mysql.userからUser、Hostを選択します。

| blog             | %         |
| blog             | localhost |


mysql> show grants for 'blog'@'%';
+--------------------------------------------------+
| Grants for blog@%                                |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO 'blog'@'%'                 |
| GRANT ALL PRIVILEGES ON `blogdb`.* TO 'blog'@'%' |
+--------------------------------------------------+
2 rows in set (0.00 sec)

telnet from my PC to the server does not work -> need to sleep. will come back tomorrow :)

秘密鍵を使用してSSH経由でUbuntuインスタンスに接続しています。

前者の問題:

Navicat を使用してWindowsからAWSインスタンスで実行されているMYSQLに接続しようとすると、次のエラーが表示されます。

'41.42.434.169'のMysqlサーバーに接続できません(10061 "不明なエラー") ->ここに記載されているIPは私のIPではありません

使用するホスト名/ IPアドレスは、AWSインスタンスのパブリックIPです。

これは、my.cnf# bind-address = 127.0.0.1にコメントすることで修正されました。

PCからのtelnetが動作するようになりました

編集

今、私は次のエラーを受け取ります:

ユーザー[email protected]のアクセスが拒否されました(パスワードを使用:YES)

1
Igor L.

リモートアクセスの場合:

Etc\mysql\my.cnfをチェックして、bind-addressが127.0.0.1に設定されていないことを確認します。 0.0.0.0に設定するか、より安全にするためにIPアドレスを追加します。

bind-address      = 127.0.0.1
bind-address      = your_public_ip

mysqlテーブルにユーザーを作成:

CREATE USER 'non-root-user'@'localhost' IDENTIFIED BY 'any_password_u_like';
CREATE USER 'non-root-user'@'%' IDENTIFIED BY 'any_password_u_like';

GRANT ALL ON *.* TO 'non-root-user'@'localhost';
GRANT ALL ON *.* TO 'non-root-user'@'%';

AWS固有

ポート3306の受信ルールがあることを確認してください

3
Igor L.