質問: PHPからPODでmysqlに接続したのですが 「エラーがありました SQLSTATE[HY000] [2002] Connection refused」 このようなエラー文が表示されますどのように解決すればよいでしょうか? 環境はcloud9 phpadminを入れています。 setAttribute(PDO::ATTR_EMYLATE_PREPARES, false); //例外がスローされる設定にする $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //接続を解除する $pdo =NULL; }catch(Exception $e){ echo'エラーがありました'; echo $e->getMessage(); exit(); } ?> コード ```
回答: 以下を確認してください。 (1)ユーザは本当に存在しているか。 select HOST,USER,Password from mysql.user; 上記のSQLを実行し、存在するかどうかを確認してください。 (2)パスワードに間違いはないか。 (3)DB名に間違いはないか SHOW DATABASES; 上記のSQLを実行し、存在するかどうかを確認してください。 (4)SQLサーバの場所に間違いないか いったん以下のコードに変えてみてください。 $host =getenv('IP'); 以下はおまけです。 [記載ミスと思われる部分] > > $dsn ="mysql:host={$host};dbname={$dnName};charset=utf8"; > > > $dnName → $dbNameの間違い? > > $pdo->setAttribute(PDO::ATTR_EMYLATE_PREPARES, false); > > > ATTR_EMYLATE_PREPARES → ATTR_EMULATE_PREPARESの間違い?