created: 2021-04-17T12:38:14.000Z

prisma-client と MySQL を unix socket で接続する

ドキュメントには「ディレクトリを指定する」という書き方になっているが、もちろん実際はファイルのフルパスを入れないとつながらない。

socket Points to a directory that contains a socket to be used for the connection

たとえばこんな設定で接続できる。

DATABASE_URL=mysql://root:@localhost:3306/myappdb?socket=/tmp/mysql.sock

ホスト名は 127.0.0.1 ではなく localhost である必要がある。 MySQL は 127.0.0.1 と指定されるとTCP接続を取ろうとするため。

その他

下記のissueで当初間違った情報が案内されてちょっと困った(最後まで読まないとダメ)。MySQL だと socket というパラメータ名だが、Postgres だと host なんだそうだ。

コード的にはここ (括弧はあってもなくてもよい)

CAREER SKILLS ソフトウェア開発者の完全キャリアガイド
[ad] CAREER SKILLS ソフトウェア開発者の完全キャリアガイド
ジョン・ソンメズ, 長尾 高弘 (Kindle版)