LoginSignup
0
0

WSLのApacheからDockerで建てたデータベースに接続したい

Last updated at Posted at 2024-01-16

WSLのApacheからDockerで建てたデータベースに接続したい

解決したらすぐ記事書く、これ大事

やったこと

  • WSLでapacheを入れて鯖を立てる
sudo apt install apache2

みたいな感じですぐ立つ

  • MYSQLのコンテナ持ってきて起動する
git clone https://example.com

好きなもの持ってこよう
公式のやつがあればそれでいいんじゃないかな
自分は友人の作ったものを持ってきた

$db_host = "localhost";
$db_user = "root";
$db_pass = "rootpass";
$db_name = "db_name";

$connect = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

しかし、どうしてもDBへの接続ができていないようだった
DBの名前が違うか?、user名違うか?、そもそもPHPにmysqlのモジュールが入ってないか?とか考えてた

解決

$db_host = "localhost:コンテナのport番号";
$db_user = "root";
$db_pass = "rootpass";
$db_name = "db_name";

$connect = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

接続する際にポート番号の指定をしていなかったことが原因
色々な記事を見ると$host = "localhost"だったのでじゃあそれでいいんだと思っていたが違った
他の記事とは環境が違うことを考慮すべきだった
当然ながらdockerコンテナのport番号がデフォルト設定localhost(:3306)ではない場合
起動する際にport番号をデフォルトに変更するか、上記のようにこっちからport指定する必要がある。
ほかは大体Dockerで完結させているでわからなかった。

なぜこんなことやったか

DockerもLinuxもなにもわからないときに
「Apache入れるだけでサーバー立てられるの神じゃん…これ使おう」
となってほかの情報を仕入れようとしなかったからです
友人のcomposeにはApacheとPHPの入ったサーバーコンテナもあったのに

結論 : 面倒くさいことしないで全部Dockerで完結させろ

image.png
データベースくん、迫真のポート主張

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0