Laradock 更改 MySQL 版本及其重建

第一次使用 Laradock,数据库报错了。

2020-10-18T15:11:49.160469Z 1 [Warning] [MY-012579] [InnoDB] fallocate(24, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-10-18T15:11:49.173865Z 1 [Warning] [MY-012579] [InnoDB] fallocate(25, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 16384) returned errno: 22
2020-10-18T15:11:49.206588Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-10-18T15:11:49.223983Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('2') and data dictionary ('0').
2020-10-18T15:11:49.225726Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-10-18T15:11:49.226190Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-10-18T15:11:49.966373Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.21) MySQL Community Server - GPL.

后来发现,.env 配置中MYSQL_VERSION,默认为 latest 默认是 MySQL, 所以要修改mysql 版本,并且重建。

# 修改 .env 文件
MYSQL_VERSION=5.7 # 默认为 latest 默认是 mysql8

#停止mysql容器
docker-compose stop mysql

# 删除旧数据库数据
rm -rf ~/.laradock/data/mysql

# mysql存在时build,就是重建mysql,即构建新 mysql
docker-compose build mysql

 # 开始mysql nginx容器
docker-compose up -d nginx mysql

# 查看现有 mysql 版本
docker-compose exec mysql bash
mysql -V

docker inspect laradock_mysql_1  //其实是一个配置文件,里面有MYSQL_VERSION的信息
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3
playmaker

try

3年前 评论
SuperEggs (楼主) 3年前

docker-compose build --force-rm --no-cache mysql

3年前 评论

phpredis 扩展死活装不上

3年前 评论
SuperEggs (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!