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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。