6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

dockerでCakePHPの環境構築をした時に、データベースに接続できない

Posted at

開発環境

CentOS6.9
PHP5.6
apache2.2.15
MySQL5.6

問題

とりあえずDockerの環境を作ってCakePHPをインストールした、あとは設定だ!という場面で、
スクリーンショット 2018-05-25 14.07.30.png

SQLSTATE[HY000][2002] No such file or directory
上の図の様なエラーが出てくることがあります。 エラー文をググると、

app/Config/batabase.php
'host'       => 'localhost'  '127.0.0.1'

に変更しろとありますね。 でも直らない!ってときの対策です。

対策: MySQLコンテナのIPを調べる

まず、作業コンテナからDBコンテナにはアクセスするには、DBコンテナのIPアドレスがわかっていないといけません。 まずIPアドレスを調べましょう。

# mysqlコンテナにログインする
$ docker exec -it (mysqlコンテナ名) /bin/bash

# IPアドレスを表示
$ cat /etc/hosts

127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.21.0.2	371725c16aa6

と出ます。 ここでいうと 
371725c16aaがDBコンテナのidなので、172.21.0.2がそのコンテナのIPアドレスとなります。

app/Config/batabase.php
'host'       => '172.21.0.2'

と修正すると...?
スクリーンショット 2018-05-25 14.09.58.png

データベースと接続できたみたいです。やったぜ。

これでもまだ接続できないよ〜><って方は、
php.ini の設定や、 php-mysql モジュールがインストールされていない場合がありますので調べてみてください。

6
10
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
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?