插件窝 干货文章 docker怎么安装mysql并设置不区别大小写

docker怎么安装mysql并设置不区别大小写

MySQL 大小写 区分 设置 591    来源:    2025-04-28

Docker 安装 MySQL 并设置不区分大小写

安装 MySQL 容器

  1. 首先拉取 MySQL 官方镜像:

    docker pull mysql:latest
    
  2. 运行 MySQL 容器并设置不区分大小写:

    docker run --name some-mysql \
     -e MYSQL_ROOT_PASSWORD=your_password \
     -e MYSQL_DATABASE=your_database \
     -v /path/to/your/local/data:/var/lib/mysql \
     -p 3306:3306 \
     -d mysql:latest \
     --lower_case_table_names=1
    

关键参数说明

  • --lower_case_table_names=1:这是设置 MySQL 不区分大小写的关键参数

    • 0:区分大小写(Unix/Linux 默认)
    • 1:不区分大小写(Windows 默认)
    • 2:创建时按指定大小写存储,但比较时不区分大小写
  • -v /path/to/your/local/data:/var/lib/mysql:将 MySQL 数据目录挂载到宿主机,确保数据持久化

注意事项

  1. 首次设置非常重要lower_case_table_names 参数必须在首次初始化数据库时设置,之后更改需要重新初始化数据库。

  2. 数据目录问题:如果之前已经运行过 MySQL 容器,需要先删除旧的数据目录或使用新的数据目录。

  3. 权限问题:确保挂载的本地目录有适当的权限(MySQL 容器使用 mysql 用户运行)。

  4. 版本兼容性:某些 MySQL 版本可能对此参数有特殊要求,建议使用较新的 MySQL 版本。

验证设置

进入容器验证设置是否生效:

docker exec -it some-mysql mysql -uroot -p

然后执行:

SHOW VARIABLES LIKE 'lower_case_table_names';

应该会显示:

+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+

使用 Docker Compose

如果使用 Docker Compose,可以创建以下 docker-compose.yml 文件:

version: '3.8'

services:
  mysql:
    image: mysql:latest
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      MYSQL_DATABASE: your_database
    volumes:
      - ./mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
    command: --lower_case_table_names=1

然后运行:

docker-compose up -d

这样就完成了 MySQL 容器的安装并设置了不区分大小写。