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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
playmaker

try

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

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

4年前 评论

phpredis 扩展死活装不上

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

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