LoginSignup
2
1

More than 5 years have passed since last update.

ローカル -> docker-compose の移行でmysqlがコケた話

Last updated at Posted at 2018-03-21

はじめに

Macのローカルに構築していたMysqlへの接続をやめて、
dockerのMysqlコンテナを使用する修正を実施しました。
接続元はJavaのSpringDataJPA(Hibernate)からです。
WebApplication立ち上がった後に、Select文を1回発行すると落ちてしまいました。
※ たちあがる前のDBMigration(Flyway)は異常終了等はしていませんでした。

色々修正した後のdocker-compose.yml

docker-compose.yml
services:
  mysql:
    image: mysql:5.7.21
    container_name: mysql
    ports:
      - 3306:3306
    volumes:
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./mysql/conf/:/etc/mysql/conf.d
    networks:
      - sonarnet
    environment:
      MYSQL_ROOT_PASSWORD: root
    restart: always
./mysql/conf/custom.cnf
[mysqld]
character-set-server=utf8
lower_case_table_names=1
explicit_defaults_for_timestamp=true

原因と対応内容

9.2.2 識別子の大文字と小文字の区別

上記リファレンスによると、下記の挙動をとるようです。

OS 大文字と小文字
OSX 区別されない
Unix 区別される

ターミナルからMysqlコンテナにログインし、テーブル検索したところ、たしかに大文字小文字の区別をしていました。
取り急ぎの処置として、lower_case_table_names=1にて対処しました。

サンプル・コード

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1