😇

本番環境で使っていたMySQLのデータをなんとかしてDockerに押しこむ備忘録

2023/11/04に公開

なんでこんなアホなことしてるかとかは言わないお約束で....
あとchmod 777してないんでmysqlのGRANT ALLは許して下さい....

まずバックアップをします

このサイトを参考にしました。
ひとまず私は複数環境が依存してたのもありすべてをバックアップします。
mysqldump -u root -p -A > mysql_archive.sql

これを移行先のパソコンになんとかして転送しておきましょう。

次に環境を用意します

公式ドキュメントを参考にしました。
私の環境は以下の通り
ファイル階層

db
└── (格納してるデータがウワーッ)
docker
└── mysql
    ├── custom.cnf
    └── Dockerfile
docker-compose.yml
.env
src
└── (格納してるデータがウワーッ)

ファイル内容は以下の通り。内容は随時書き換えて下さい。あと同じ文言のコメントは書いてないです

  • custom.cnf このサイトから参考にしました
  • Dockerfile
  • docker-compose.yml
  • .env ※コメントみたいなのは消して下さい
  • wp-config.php 移植の際に一部構文が変わってるので参考にしながら書き換えたり書き加えて下さい。

dbだけ起動しよう

  1. まずは docker compose up -d --build db
  2. 次にデータを復元するために cp [sqlファイルの場所] ./db
  3. 復元するために docker compose exec db /bin/bash
  4. 読み込むために mysql -u root -p < /var/lib/mysql/[sqlファイル名]
  5. パスワードを入れて....
  6. 読み込み切ったらsqlにログイン mysql -u root -p
  7. そしたらアカウント作り直しをする このサイトのお陰で助かりました。
    create user '[.envに書いたユーザー名]'@'%'; (どこからでもアクセスできるようにするだけなので)
  8. データベースに権限を付与する GRANT ALL ON [.envに書いたデータベース名].* TO '[.envに書いたユーザー名]'@'%';
  9. あら不思議。できました。

パスワードでコケたら[ここ](https://qiita.com/keisukeYamagishi/items/d897e5c52fe9fd8d9273]見て下さい。

dbの準備ができたら?

docker compose up -dでWordPressを起動させましょう。
そうするとおそらくきっとMaybe多分起動します。しらんけど。

完走した感想

これに2周間時間を取られた私がバカバカしい。
あとログに吐き出させるのは重要だと感じた
https://vxtwitter.com/wayamoti2015/status/1720540600607683025

Discussion