在 Docker 中启动 MySQL 时不区分大小写,可以通过配置 MySQL 的 lower_case_table_names 参数来实现。这个参数的值可以设置为不同的选项,具体如下:
0: 表名按指定的大小写存储,比较时区分大小写。
1: 表名以小写形式存储,比较时不区分大小写。
2: 表名按指定的大小写存储,但比较时转换为小写。
1、为了使 MySQL 不区分大小写,您可以将 lower_case_table_names 设置为 1。以下是具体的步骤:
创建自定义的 MySQL 配置文件: 创建一个 my.cnf 文件,并添加以下内容:
[mysqld]
lower_case_table_names=1
2、将配置文件挂载到 Docker 容器: 使用 -v 选项将自定义的 my.cnf 文件挂载到 MySQL 容器中。假设您的 my.cnf 文件位于当前目录下,可以使用以下命令启动 MySQL 容器:
docker run \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /tmp/mysql/conf/my.conf:/etc/mysql/my.conf \
-v /tmp/mysql/data:/var/lib/mysql \
--restart=always \
-d \
mysql:8 --lower_case_table_names=1
进入 MySQL 命令行,执行以下 SQL 查询:
SHOW VARIABLES LIKE 'lower_case_table_names';
如果输出结果为 1,则表示配置成功。
请注意,lower_case_table_names 参数的值在 MySQL 实例首次启动时设置,并且在实例运行期间不能更改。因此,如果您已经有一个正在运行的 MySQL 实例,更改此参数需要先停止并删除该实例,然后使用新的配置重新启动一个新的实例。
mysql8 以上
一定在初始化的时候搞。
一定在初始化的时候搞。
一定在初始化的时候搞。