之前版本可以直接在my.cnf中添加sql_mode就行,但是在8.0.x版本中无效(具体哪个版本开始的不清楚,当前使用的是8.0.30版本)
解决方案
我们需要新建一个custom.cnf文件
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
我是把所有配置文件和数据都映射到服务器文件夹里,所以我的下一步是删除原有容器,然后映射到docker容器里(假设文件放在/docker/mysql里)
-v /docker/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf
最后重新运行容器即可
贴出完整的运行命令
docker run --restart=always -v /docker/mysql/custom.cnf:/etc/mysql/conf.d/custom.cnf -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -p 3306:3306 -p 33060:33060 --name mysql -d -e MYSQL_ROOT_PASSWORD=密码 mysql/mysql-server:8.0.30