この通りにやってみたら動いたのでよし。
コンテナの中で永続ボリュームにMySQLをつくる
なんかコンテナの外にDB立てて、それにコンテナからつなごうと思ってたが、面倒なのでやめた。
こっちでやる。
ちなみに、コンテナからコンテナの外のDBにつなぐときは、こんな感じ。
WSLを再インストールしてgenieを入れた
なんかもうWSLの環境がとっ散らかったので、WSLを一回消して再インストールした。
最近は
> wsl --install -d Ubuntu-20.04
ってpowershellで打つだけで再インストールできるので便利。genieはローカルでSQL使おうとするとsystemctlが使えないから仕方なく入れる感じ。
WSL2にgenieを入れた
WSL2をUbuntu22.04LTSにしたが、genieが入れられないので、stackoverflowとか調べて色々やった。
僕の場合はlibffiがないって言われたので、pyenvでpythonを入れなおした。
Ubuntu 20.04 upgrade, Python missing libffi.so.6 - Stack Overflow
結局やりたいことはこれ。
WSL2でsystemctl
WSL2でMySQLをごそごそしててsystemctlを動かそうとしたら動かなくてこまったので。
DockerコンテナからローカルDBのアクセス
ローカルにMySQLたてて、SQLAlchemyで作ったモデルとかが入ってるコンテナからDBにアクセスするとこんなエラーがでる。
ちなみに、コンテナの外からだといける。
E sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
E (Background on this error at: https://sqlalche.me/e/14/e3q8).cache/pypoetry/virtualenvs/getter-robo-db-JiYjYjBW-py3.8/lib/python3.8/site-packages/MySQLdb/connections.py:185: OperationalError