docker-compose mysql 表明查询忽略大小写

Docker Compose 中的 MySQL 容器默认是区分大小写的,如果想要在 Docker Compose 管理的 MySQL 服务中忽略大小写,需要设置 lower_case_table_names=1。

在 docker-compose.yml 文件中,可以通过环境变量来设置这个参数。以下是一个示例配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3'
services:
db:
image: mysql:latest
command: --lower_case_table_names=1
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydatabase
ports:
- "3306:3306"
volumes:
- my-db:/var/lib/mysql

volumes:
my-db:

在这个配置中,db 服务使用了最新版本的 MySQL 镜像,并通过 command 指定了启动参数 –lower_case_table_names=1,这样做将使得 MySQL 在查询时忽略大小写。同时,设置了环境变量 MYSQL_ROOT_PASSWORD 来为 root 用户设置密码,以及 MYSQL_DATABASE 创建一个新的数据库。最后,数据卷 my-db 被用于持久化数据库数据。

注意,设置 lower_case_table_names=1 可能会带来性能上的影响,因为它会使得所有的表名、列名等转换为小写。同时,这个选项只在数据目录被初始化时被读取,如果数据库中已经有数据,那么之后修改这个配置不会有任何效果。因此,在生产环境中,要在初始化数据库之前设置好这个参数。