経緯
とあるサイトの改修をするため、DockerでWordpress環境を構築しlocalhost:8000 で立ち上げたもののCSSが反映されず、siteurlを変更する必要がありました。
リポジトリのREADMEには「sequelpro」を使って変更する手順が記載されていたのですが、「sequelpro、接続できない問題!」が発生しまして。。。(ググって見た所どうやら認証方式が変わったとか)
なのでsequelproを使わず、コマンドからDockerに接続しsiteurlを変更することに。
普段この辺りを触る機会がめったにないので備忘録として残したいと思います!
Dockerへ接続
sudo docker ps
コマンドを実行するとコンテナIDが表示されるので、docker-compose.ymlに記載されている、対象DBのコンテナIDを確認します。
そして下記コマンドを実行し、
sudo docker exec -it {コンテナID} /bin/bash
root@コンテナID:/#
のようなプロンプトが表示されていれば接続成功!です。
DBへ接続
docker-compose.ymlに記載されている、MYSQL_USER:とMYSQL_DATABASE:を確認し以下コマンドを実行。
mysql -u {データベースユーザ名} -p {データベース名}
そうしたら、{データベースのパスワード}の入力を求められるのでMYSQL_PASSWORD:に記載されているパスワードを入力します。
設定の確認
下記コマンドを実行すれば、現在設定されているseiteurlとhomeの2つを確認することができます。
siteurlのみは,"home"を省いてください。(逆も同じ)
select * from wp_options where option_name in ("siteurl","home");
設定の変更
現状の設定が確認できれば、設定を変更していきます。
update wp_options
set option_value="{正しいURL}"
where option_name in ("siteurl");
seiteurlとhome両方変更する場合は、最後の記述を,where option_name in ("siteurl","home");としてください。
設定の確認
最後に、きちんと変更できているか確認して終了になります。
select * from wp_options where option_name in ("siteurl");
表示されたsiteurlが更新したものになっていればOKです!
そしてサイトのTOP画面や管理画面に戻ってきちんと表示されていることを確認してください。
接続から抜ける
コマンドでexitと打ってDBとdockerそれぞれの接続から抜けてください。
以上、突如発生する困った・・・!!
の対処方法でした!
参照
MySQL: Sequel ProでMySQLに接続できない時
WordPressの一般設定でサイトURLを誤って変更した時の戻し方