Help us understand the problem. What is going on with this article?

【Docker】Dockerでwordpressの環境構築しようとしたらError establishing a database connectionのエラーがでた話

Dockerでwordpressの環境を立ち上げようとした時に問題が発生したので、その件について書いていきます。

結論からいうと、DBのバージョンが原因だったようです。wordpressでMySQL8.0は動かない可能性があるようですね。

今更だけどDockerでWordPress環境を用意してみたら超簡単だった

この記事の通りにすすめていったところ、dockerをrunさせた後にlocalhostにデカデカとこのエラーが。

Error establishing a database connection

DBのコネクションにエラーということなのでパスワードとかに問題があったのかなと思ったのですが、結果的にはMySQLのバージョンが問題でした。
wordpressの場合MySQLのバージョンは5.6~が必須なんですが、ここで最新の8とかにしちゃうとうまくつながらない場合が多いようです。

MySQL 8.0 で、WordPress に接続できなくなった

dockerのimageをpullした後に、docker runを行います。
docker run -d オプションでは指定したimageをバックグラウンドで起動することができます。

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=test-pw -d mysql

しかし、このコマンドのせいで上記のエラーとなってしまいました。なぜなら指定しているのがmysqlになっていて、これが最新版(latest)となっていたためでした。。以前pullしていたmysqlの最新版をここで指定してしまっていたようです。imageの名前ははっきりさせないとまずい?ですね

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=test-pw -d mysql:5.7

これでバージョン指定してrunすることができました。
docker runのオプションの話は

【図解】docker runのオプションいろいろ

こちらがおすすめです。

その後

docker run --name test-wordpress --link test-mysql:mysql -d -p 8080:80 wordpress

でいけました。

ynwa0826
Web系ベンチャーに務めています。インターン1年を経験後に正社員を2年。 PHPのフレームワークをよく使っています。 もともと数年前から自ブログに書いていた記事を移行したため、一部古い記事があります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした