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)
リモートアクセスの場合:
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の受信ルールがあることを確認してください