docker-up时如何改变mysql的特性?
当我保存中文string时,mysql会出现错误“exception值:
(1366,“不正确的string值:'\ xE5 \ xB0 \ x8F \ xE6 \ x98 \ x8E'列'name'在第1行”)“,我检查mysql的字符,它显示:
mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
而我的docker-compose.yml和其他人一样:
web: image: yetongxue/docker_test:1.2 links: - "db" ports: - "8100:8000" volumes: - "/Users/yetongxue/docker_v/docker_test/media:/root/media" restart: always db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: qwerasdf MYSQL_DATABASE: docker_db restart: always volumes: - "/Users/yetongxue/docker_v/docker_test/db:/var/lib/mysql"
我知道如何使用my.cnf设置mysql的字符,但是我怎样才能在docker-compose.yml中做到这一点? 有人知道吗? 谢谢!
撰写文件用于运行容器(并可以构build图像)。 您不能自定义docker-compose文件中的图像。 您需要创build一个扩展mysql映像的自定义映像。 创build一个Dockerfile:
FROM mysql:5.7 RUN <command to update my.cnf>
然后build立这个图像:
docker build -t <image-name> .
更新撰写文件:
db: image: <image-name-specified-above>