blog.euxn.me

Mac で複数バージョンの mysql を docker で用意し、protocol=tcp にして sock のエラーを回避する

2018-10-11 Thu.

要約

mysql 接続時の設定が変更可能な場合は以下のどちらか

  • mysql client 実行時に --host 0.0.0.0 を用いる、もしくは MYSQL_HOST=0.0.0.0
  • mysql client 実行時に --protocol tcp を用いる

設定がハードコードされている等の場合には my.cnf に以下を追記することで、 host = localhost 参照の場合でも sock ではなく tcp を指定する。

[mysql]
protocol = tcp

※ my.cnf の配置は $ mysql --help で候補が出てくる。実態が複数ある場合、表示順の優先度で読み込みを行うため、もっとも優先度の高いものを編集する。

背景

homebrew を使うと最新の MySQL が入りますが、古いバージョンが(時には複数のバージョンが)必要になることがあります。 また、同名のデータベース名を複数のアプリケーションで使用するケースもあり、実態として複数欲しいことがあります。

brew で入る [email protected] を使用するにも、link まわりや services まわりでハマりがちであるうえ、バージョン切り替えるごとに行わなければならない処理が煩雑になりがちです。

そこで、Mac には client としての mysql(最新版)をインストールし、 mysql server は docker を使用します。 ただし、mysql client は host = localhost (標準) の場合、 sock による通信を優先するため、普通にやるとエラーになります。 通常は上記のように 0.0.0.0 を指定する等しますが、歴史的経緯によってはそうもいかないので、 my.cnf に設定を追加します。

Other Works
2024-12-01 Sun.
OpenAPI Spec を出力できる DSL、TypeSpec の実践例
- ドワンゴ教育サービス開発者ブログ

2024-11-16 Sat.
型付き API リクエストを実現するいくつかの手法とその選択
- TSKaigi Kansai 2024

2024-09-10 Tue.
corepack が標準同梱じゃなくなる未来、 mise でパッケージマネージャを管理する
- Zenn

2024-09-10 Tue.
言語環境の管理は *env や *vm を超えて、 mise へ
- Zenn

2024-06-28 Fri.
TypeSpec を使い倒してる
- Kyoto.js 22

2024-05-11 Sat.
Powerfully Typed TypeScript
- TSKaigi 2024

2024-05-10 Fri.
pnpm の node_modules を探検して理解しよう
- ドワンゴ教育サービス開発者ブログ

2024-03-17 Sun.
neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
- Zenn

2023-12-20 Wed.
レガシーブラウザ向けのビルドオプションを剪定する
- ドワンゴ教育サービス開発者ブログ

2023-05-26 Fri.
Next.js で dynamic import を使い Client だけで動かす Component を実現する
- Zenn

2023-05-02 Tue.
Node.js でファイル名から拡張子を取り除く/取り出すために path.parse を使う
- Zenn

2023-02-27 Mon.
WSL2 で外部からアクセス可能にするために bridge mode を有効にする
- Zenn

2023-01-26 Thu.
init.vim & dein から init.lua & lazy.nvim へ、シンプル設定で移行した
- Zenn

2023-01-13 Fri.
kindle の本をブクログ形式の csv でエクスポートする@2023初春
- Zenn

2023-01-10 Tue.
自宅サーバの移設に際して docker から nerdctl に移行した
- Zenn

2023-01-10 Tue.
自宅サーバを rootless に移行した際のトラブル対応
- Zenn

2021-11-11 Thu.
並列実行した Promise で throw されても全てハンドルしたいときの方法(allSettled, finally, etc...)
- Zenn