DockerでMySQLをローカル構築|Mac対応・CLI操作と文字化け対策も解説

Docker MySQLをローカルに環境構築|Mac対応・日本語文字化け対策つき 開発ツール(Dev Tools)
Docker MySQLをローカルに環境構築|Mac対応・日本語文字化け対策つき
この記事は約8分で読めます。
てんハロ運営者
てんハロ運営者

どもども
今回は「DockerでMySQLをローカルに環境構築」について解説します。

バグヲ
バグヲ

どっかー…? なんか難しそう…

てんハロ運営者
てんハロ運営者

こんなあなたにピッタリな記事👇

  • 開発環境を一瞬で作りたい
  • チームと同じ環境で作業したい
  • MacでMySQLをすぐに使えるようにしたい

がまぁまぁわかります!

未経験でも気軽に!サブスク型プログラミングスクール【Freeks】

Dockerとは?

Dockerとは、「アプリを動かすための環境」をまるごとお弁当箱のようにパッケージにできるツールです。

メリット

  • ✅ 開発環境の構築が一瞬でできる
  • ✅ チームで同じ環境を再現できる
  • ✅ テスト・本番環境の切り替えも簡単

など、プログラミング学習でも現場でも大活躍します。

環境構築手順

ステップ0:Macのチップ確認(IntelかApple Siliconか)

まず前提として、自分のMacの「チップの種類」を確認します。

✔ 確認方法

  1. メニューバー左上の「(リンゴマーク)」をクリック
  2. 「このMacについて」を選ぶ
  3. 表示されるウィンドウで「チップ」の項目を確認

下記が表示された場合、Apple M4 Pro → Apple Silicon 用の Docker を選びましょう。

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

ステップ1:Docker Desktop のインストール

Docker公式サイト にアクセス

② 「Download for Mac – Apple Silicon」を選んでインストーラをダウンロード

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

③ ダウンロードされた.dmg を開き、「Docker.app」をアプリケーションフォルダに移動

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

ステップ2:Docker初期セットアップと起動

① アプリケーションから Docker を起動

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

「Docker サブスクリプション利用規約」への同意確認画面が表示されます。

📌 ざっくり要約

  • 個人利用小規模な開発会社での使用なら、無料で使えます!(AcceptしてOK)
  • 商用利用で「社員250人超 or 年間収益1,000万ドル超」の場合は有料プランが必要

② 「Use recommended settings」でOK

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

少し待つと、画面右上のメニューバーに「🐳クジラマーク」が表示されます。

補足:Docker Desktop のアカウント登録 or ログイン画面

Dockerアカウントを使うと、Docker Hub(イメージ共有サービス)と連携したり、CI/CD用に活用できたりします。

ただし、ローカルで開発するだけならアカウント登録は不要です!
「Skip」をクリックしたら、いよいよDockerが使えるようになります🐳

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

ステップ3:MySQLコンテナ用のdocker-compose.ymlを準備

下記は docker-compose.yml は MySQLコンテナをローカルに構築するための雛形になります

version: '3.8'  // Docker Composeのバージョン

services:
  mysql:  // サービス名(任意)
    image: mysql:8.0   // 使用するMySQLのバージョン
    container_name: 任意コンテナの名前
    restart: always. // PC再起動後も自動で再起動する
    environment:  // MySQLの初期設定(環境変数)
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - "3306:3306" 
    volumes:
      - mysql_data:/var/lib/mysql  // データ永続化

volumes:
  mysql_data:   // データ永続化

データ永続化とは?と思われた方は、下記の記事にて解説しています!

ステップ4:.envファイルの準備

上記の docker-compose.yml.env とセットで動作します。

同じフォルダに .env ファイルを作成して、以下のように記述してください。

MYSQL_ROOT_PASSWORD=ルートパスワード
MYSQL_DATABASE=データベース名
MYSQL_USER=ユーザー名
MYSQL_PASSWORD=パスワード
Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

ステップ5:MySQLコンテナの起動

docker-compose.yml がある場所で下記を実行

docker compose up -d

成功すると、MySQLが起動して .env の設定が反映された状態になります。

ステップ6:MySQLコンテナに接続

下記は、Docker コンテナ内の MySQL に接続して、対話的に操作するコマンドです。
パスワード聞かれたら .env に書いた rootpass を入力

docker exec -it 任意コンテナの名前 mysql -u root -p

ログインできたら次のコマンドで設定したデータベースがあるか確認

SHOW DATABASES;

ステップ7:文字化け防止(utf8mb4)

Docker経由でMySQLに接続すると、文字コードが latin1 になることがあります。

全角文字を扱うには utf8mb4にするには以下のようにオプションを追加して接続してください。

docker exec -it b2b-mysql mysql -u root -prootpass --default-character-set=utf8mb4

その後のセッション内では、latin1utf8mb4 に変更されています。

SET NAMES utf8mb4;

⚠️ 注意点

exit; すると元に戻るため、必要に応じて my.cnf に設定を加えるか、SQLスクリプトで自動化しましょう。

ターミナルでテーブルを作ってみよう

DockerでMySQLを使う場合は、基本的にターミナル(CLI)で操作します。
ただし、GUIで操作したい場合も、別のツールを使えば可能です。
今回はターミナルで実行する例を紹介します。

① MySQLのプロンプトに接続

docker exec -it b2b-mysql mysql -u root -prootpass --default-character-set=utf8mb4

② 接続後の表示

mysql>

③ 以下のSQLで、users テーブルを作成

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

SHOW TABLES; を実行すると、テーブルが作成されたことを確認できます。

Docker MySQLをローカルに構築する完全手順|Mac対応・日本語文字化け対策つき

SQL(クエリ)とは?と思われた方は、下記の記事にて解説しています!

補足:Docker操作の基本コマンド

docker ps -a                 # コンテナ一覧(停止中も)
docker stop コンテナ名        # 停止
docker rm コンテナ名          # 削除
docker images               # イメージ一覧
docker rmi イメージID         # イメージ削除
docker volume ls            # ボリューム一覧
てんハロ運営者
てんハロ運営者

おつかれさまでした!

更新をF5連打で待つの、そろそろやめませんか?
( ブログ更新をメールでそっとお知らせします🙇‍♂️ )

スパムはしません!詳細については、プライバシーポリシーをご覧ください。

コメント