とうゆのメモ帳

日常とか勉強とか

MySQL Ver 8.0 ローカル環境構築

MySQL Ver 8.0

Docker を使ったローカル環境構築手順

実行環境

  • Mac OS mojave 10.14.6
  • Docker Desktop 20.10.5
  • Docker Compose 1.28.5

ディレクトリ構成

.
├── docker-compose.yml
├── conf
│  └── my.cnf
├── data
│  └── xxx
└── logs
    ├── mysql-error.log
    ├── mysql-query.log
    └── mysql-slow.log

方法

  1. docker-compose.yml ファイルを作成 docker-compose.yml
version: "3"
services:
  db:
    image: mysql:8.0
    volumes:
      - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./data:/var/lib/mysql
      - ./logs:/var/log/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpass
      - TZ=Asia/Tokyo
    ports:
      - 3306:3306 # ホストポート:コンテナポート
    # コンテナ名を明示的に指定する
    container_name: mysql8-container
  1. MySQL設定ファイル作成 ./conf/my.cnf
# MySQLサーバーへの設定
[mysqld]
# 文字コード/照合順序の設定
character-set-server = utf8mb4
collation-server = utf8mb4_bin

# タイムゾーンの設定
default-time-zone = SYSTEM
log_timestamps = SYSTEM

# デフォルト認証プラグインの設定
default-authentication-plugin = mysql_native_password

# エラーログの設定
log-error = /var/log/mysql/mysql-error.log

# スロークエリログの設定
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 5.0
log_queries_not_using_indexes = 0

# 実行ログの設定
general_log = 1
general_log_file = /var/log/mysql/mysql-query.log

# mysqlオプションの設定
[mysql]
# 文字コードの設定
default-character-set = utf8mb4

# mysqlクライアントツールの設定
[client]
# 文字コードの設定
default-character-set = utf8mb4
  1. コマンド実行
# 起動
$ docker-compose up

# 停止
$ docker-compose down

# ログイン
$ docker exec -it mysql8-container bash
$ mysql -u root -prootpass

サンプルコード

github.com