実現したいこと
■環境
・AWSサーバー(EC2インスタンスのLinuxサーバー) ※以下、Linuxサーバーとします
・Windowsサーバー(Xampp環境) ※以下、Windowsサーバーとします
●やりたいこと
LinuxサーバーからPDOを使用してWindowsサーバーにあるMySQLへ接続をしてデータ取得等がしたいです
発生している問題・分からないこと
実行すると、接続タイムアウトが発生してしまっています
エラーメッセージ
error
1SQLSTATE[HY000] [2002] Connection timed out
該当のソースコード
PHP
1<?php 2// テスト 3$dsn = 'mysql:host=WindowsサーバーのIPアドレス;dbname=hotcall'; 4$user = ユーザー名; 5$password = パスワード; 6 7try{ 8 $dbh = new PDO($dsn, $user, $password); 9 $sql = 'select カラム名 from テーブル名'; 10 foreach ($dbh->query($sql) as $row) { 11 echo 'OK'; 12 } 13}catch (PDOException $e){ 14 echo $e->getMessage(); 15} 16?>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
・WindowsサーバーのMySQLのユーザの確認および権限について確認を行った
→正常に登録されていることおよび権限が付与されていることを確認
・Linuxサーバーのセキュリティグループの確認を行った
→アウトバンドルールは特に何もしていないことを確認
・Windowsサーバーのファイアウォールでポート3306を開放
・tracerouteコマンドを使用して到達しているかを確認
→途中までしか到達してないことを確認
【traceroute結果】
列1 | 列2 | 列3 |
---|---|---|
TTL1 | XX.XX.XX.XX1 | 2.375ms |
TTL2 | XX.XX.XX.XX2 | 1.443ms |
TTL3 | XX.XX.XX.XX3 | 1.393ms |
TTL4 | YYY.ne.jp | 2.815ms |
TTL5 | XX.XX.XX.XX4 | 3.461ms |
TTL6 | XX.XX.XX.XX5 | 5.730ms |
TTL7 | * | * |
… | ||
TTL30 | * | * |
補足
EC2インスタンス(Linux t2.micro)
Windowsサーバー
言語:PHP 8.2

あなたの回答
tips
プレビュー