
最近有个项目需要mysql 8.4适配,我们想先测试下,所以先使用docker compose快速启动一个mysql 8.4的服务。
以下是启动 MySQL 8.4 的 docker-compose.yml 示例:
services: mysql: image: mysql:8.4.5 container_name: mysql-8.4 environment: MYSQL_ROOT_PASSWORD: Xxx_password_** # 自定义root密码 ports: - "3306:3306" volumes: - ./mysql_data:/var/lib/mysql # 持久化数据# - ./config/my.cnf:/etc/mysql/my.cnf # 可选:挂载自定义配置文件 restart: unless-stopped command: --mysql-native-password=ON # 若需兼容旧客户端说明:1. 镜像版本:使用 mysql:8.4.5 官方镜像(需提前拉取)2. 数据持久化:可以通过 volumes 挂载本地目录,避免容器删除后数据丢失,也可以参考示例当前目录下文件持久化。3. 安全配置:• MYSQL_ROOT_PASSWORD 必须设置,否则容器无法启动。4. 端口映射:将宿主机的 3306 端口映射到容器的 3306。5. 自定义配置:若需修改 MySQL 配置(如字符集、日志路径等),可在 ./config/my.cnf 中添加。启动命令:docker-compose up -d注意事项:• 如果需要创建其他用户或数据库,可通过 MYSQL_USER 和 MYSQL_DATABASE 环境变量扩展配置。• MySQL 8.4已经弃用了default-authentication-plugin参数,并且不再默认启用mysql_native_password插件。• MySQL 8.4 默认使用 caching_sha2_password,若客户端支持(如 MySQL 8.0+ 客户端),可直接移除 command 配置项,改用更安全的认证方式 。