Phoenix (database=mysql) を WSL2 で使えるようにした

Elixir Phoenix Web
更新2020/11/15
一番難しかったのはMySQLのセットアップでした

前段

Elixirが動くようになるまではこちらをご確認ください-> Elixir を WSL2 で使えるようにする
ここからPhoienixのインストールを行いました。

Phoenixのインストール

$ mix archive.install hex phx_new  # mix archive.install hex phx_new 1.5.5 # バージョン指定の場合

Nodeのインストール

Ubuntuに最新のNode.jsを難なくインストールする がとても参考になりました。

nodeとnpmがないと、phoenixのサーバーを立ち上げたときに怒られます。

mysqlのインストール

これが一番ハマりました....。WSL上にMySQLを立てるの初めてじゃなかったハズなんですが...。
混乱ポイントは、初期化のmysql_secure_installationを叩くと、まだ設定してもいないrootのパスワードを聞かれること。

WSLのUbuntu18.04.1LTSにMySQL5.7を入れたお話 の記事を参考にさせていただき事なきを得ました。

途中でつまずいてMySQLをすべて消し去るときは->Ubuntuでmysql-serverを完全に削除する方法


Phoenixサーバー起動

phoenixのプロジェクトを作成します。
 --database=mysqlのオプションを渡さないとPostgreSQLになるので注意が必要っぽいです。

$ mix phx.new . --app MySampleApp --database=mysql
config/dev.exsを修正して、DBに接続可能なMySQLのusernamepasswordをセットします。
そしてこの情報をもとにMySQLにDBを生成してもらいます。
$ mix ecto.create
最後にサーバーを立ち上げます

$ mix phx.server 

書いた人/このブログについて

サーバーサイドエンジニア。お仕事ではRubyとPerl。趣味ではC#やHLSLなどを少しと、3DCGでPythonをごまかしながら使う感じ。Unityとインフラ周りも好き。

自分の備忘録もGoogle検索に任せたくてこのブログ書いてる。Phoenix製でEC2上で稼働中。