私はそのようなdocker-compose.yml
を持っています:
database:
container_name: test_db
image: mysql:5.7
volumes:
- ./docker/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test_db"
ports:
- "3306:3306"
volumes:
- test_db_data:/var/lib/mysql
volumes:
test_db_data:
sql_mode
を編集したい。
./docker/my.cnf
に含まれるもの:
[mysqld]
sql_mode=""
しかし、ローカルマシンからdbに接続してSELECT @@sql_mode;
を実行すると、次のメッセージが表示されます。
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
何が悪いのですか?
また、私は変わりました
- ./docker/my.cnf:/etc/my.cnf
に
- ./docker/my.cnf:/etc/alternatives/my.cnf
これは問題とは関係ありませんが、「ベタープラクティス」と見なされているようです。
これをdbサービスに追加できます:
command: --sql_mode=""
っていうことは:
database:
container_name: test_db
image: mysql:5.7
volumes:
- ./docker/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "MYSQL_DATABASE=test_db"
ports:
- "3306:3306"
volumes:
- test_db_data:/var/lib/mysql
command: --sql_mode=""
「volumes」ディレクティブを1つだけ使用するようにしてください。多分それは最後のものだけを使います。