konatsuのブログ

学生が思う気ままにキーボードをたたきます

MySQL バージョン5.7と8.0が喧嘩してたお話

errorを倒すと経験値が入るのは、我々界隈では常識

ぱっと紹介できる丁度良いerrorとエンカウントしたので、遭遇条件、対象法を走り書きで保存する。

※専門用語が飛び交い、いつものブログと毛色が違うかもですご了承ください。

 

同じ状況の人のために先に解決方法を明示。

Dockerのイメージ、ボリュームを全部消すんだ!

 

以下、ある程度丁寧に説明。できてるかな!?

 

問題

最近ハッカソンで作ったMySQL ver5.7がDocker によってほか環境にまで影響していた。既存プロダクトのMySQL ver8.0と喧嘩を始める。

 

発覚理由

既存プロダクトで、DB操作を全くできないことが判明。

Railsの新モデル作成時、カラム追加時にdb:migrateが動かない。

 

状況確認

シンプルな、dbがないというerrorなら新しくdb:create等で作り直せば、なんとかなる。

だが、全部動かん!!! (reset drop and so on)

 

ターミナルでDBのログを見る。

あれ?何か2ついないか?みたいなerrorがある。

新規プロダクト(ハッカソンで作った環境)でDB環境をDockerでこねこねしてたのを思い出す。

 

error討伐

Docker DesktopでImage, Volumes, Contanersを全削除。

その後、docker compose buildし、db操作。動く、こいつ動くぞ!! 勝ち!!! 

 

何か、このerrorを防ぐ、Docker Desktopの設定もあるらしい。自分のとこには、なかたよ~(泣)

多分、MacのDocker Desktopにしかない? 

 

何か参考になれば、嬉しいです。

読んでいただき、ありがとうございました!