今日はプログラミング学習がはかどった。ついでに結構色んな所でつまずいたからそれをアウトプットしていこうと思う。
PHPでMySQLにアクセスしたいけど謎のエラーがおきて前に進まない。
今回はconnection refusedというエラー文が出てしまったときの対処法について解説しようと思う。
connection refusedはMySQLとの接続に問題が起きている
僕はPHPを学習しはじめてまだ数日なのでもしかしたらニュアンスが違うかもしれませんが、僕が実際に調べた限りだと、connection refusedはMySQLとの接続に問題があるときに出されるエラーコードだ。
これが起きたときに見るべきポイントとしては、MySQLのサーバにアクセス権があるかや、PDOとMySQL互換性はあるかなど色々あるんだけど、最も確認スべき点が一つあって、それを直したら僕もうまく行ったから書いていこうと思う。
結論:hostを確認すべき
僕が実際に書いていた、connection refusedが起きてしまっているコードが下記
<?php try{ $db = new PDO('mysql:dbname=mydb; host=127.0.0.1; charset=utf8', 'root', 'root'); } catch(PDOException $e) { echo 'DB接続エラー: ' . $e->getMessage(); } ?>
これのhostにある”127.0.0.1″というのはローカル環境で作業しているときに指定する値なんだけど、ここが問題になっているケースが多い。
<?php try{ $db = new PDO('mysql:dbname=mydb; host=localhost; charset=utf8', 'root', 'root'); } catch(PDOException $e) { echo 'DB接続エラー: ' . $e->getMessage(); } ?>
変えたあとのコードがこれで実際にこのコードにすることで僕のエラーは治った。具体的に変えたのは下のこれだけ。
host = 127.0.0.1 ; ⇒ host = localhost ;
意味としては同じのはずなんだけど、どうやらMAMPで作業をしているとこのエラーが出るらしい。
connection refusedが起きるその他の要因
その他には、文字コードがutf8になってないとか、PDOに記述した内容一つ一つを確認するといい。
今日の進捗
アウトプットと学習報告を同時にやるとどうしても検索で来た人のじゃまになるから、今日は学習報告を下の方にした。問題が解決した人は速やかにブラウザバックしてほしい。
- PHP入門を20本
今日は昨日宣言したとおりこれだけにコミットした日だった。昨日でPHPの開発環境構築、PHPの基礎の基礎が終わって今日からはMySQLに入った。
が、20本も進めたためMySQLも終わり、いよいよPHPとMySQLを使った実践的な学習が始まった。
毎日が楽しみ
今日はcreateとcreated、mamoとmemoのスペルミスだけで一時間使ったんだけど、
それでも個人的にはわからないときの辛さよりもわかったときの嬉しさがまさるから、プログラミングが楽しいと思ってる。最高。
最近はプログラミングの勉強をして、きずいたら夜になって、早く朝にならないかなと思ってる。ただ朝になるのが待ちきれなくて夜ふかしして結局昼に起きてるのはどうにかしたい。
分からないに対する忍耐力が必要
プログラミングは本当に忍耐力が試される勉強で、数学の問題集で答え見ても意味がわからなかったときに似てる。
調べても原因がわからなくて、答えのコードを見てもわからず、一日終わるなんてことはざらにある。
それがどうしても耐えられなければ独学は諦めてメンターさんについてもらうのも良いかもしれない。おすすめのスクールは下記
明日の目標
今日は比較的プログラミングだけに注力できたんだけど、明日は大学の課題が溜まってるからそちらを優先しないといけない。今日ほどは進まないことを考えて、動画8本にする。
動画8本でちょうど現在のセクションが終わって最終章に移るから切りが良い。最終課題に関しては最低でも3日で終わらせたいと思ってるから、少なくともあと4日でPHPとMySQLの入門を終われる計算になる。約一週間だから悪くないスピードだ。🏁
明日は、VScodeの英語スペルミスを検知するプラグインを入れて検証してみようと思う
コメント