1. MySQL 备份恢复\表迁移失败
情景再现
- 用Navicat导出sql,恢复时,报错:Invalid default value for 某字段
- 用Navicat备份,恢复时,报错:有表恢复失败。导致少表
原因
- 这种情况多半是mysql升级到5.7之后而引起的默认值不兼容的问题。可能是类型的默认值被限制了。查看sql_mode
mysql> show variables like 'sql_mode'; - 结果中:
NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0,这是5.7之后mysql默认有的。# MySQL5.7 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # MySQL8:mysql8取消了NO_AUTO_CREATE_USER ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION - 核实出错表:
wp_comments表中comment_date字段类型是datetime,默认值是'0000-00-00 00:00:00'。其他出错的表也是如此
解决
- 临时修改
# mysql5.7 # 所有的客户端所有的连接都有效,但重启mysql后失效 SET global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ; # 当前用户当次连接有效 SET SESSION sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ; # mysql8: mysql以上已经取消了NO_AUTO_CREATE_USER,sql_mode中不能包含这个。 # 所有的客户端所有的连接都有效,但重启mysql后失效 SET global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' ; # 当前用户当次连接有效 SET SESSION sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' ; - 永久修改,修改mysql配置文件
指定sql_mode的值,添加如下内容。实质是去掉vim /etc/my.cofNO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数# mysql5.7 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # mysql8:mysql以上已经取消了NO_AUTO_CREATE_USER,sql_mode中不能包含这个。 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION - 最后重启mysql服务,CentOS7使用
systemctl restart mysqld重启
2. 媒体图片不能生成设定尺寸,不能裁剪旋转
情景再现
- 不能生成设定的不同尺寸,上传后只有一张图片


- 不能裁剪旋转

原因 & 解决
- PHP没有开启GD库,找到
php.ini文件开启下图扩展。然后重启Apache或Nginx

😁欢迎加入QQ群交流: [游戏-Web-开发技术栈 ☄️] '300567032’
点击下方图标一键加入!


284

被折叠的 条评论
为什么被折叠?



