运维打算将mysql从5.7升级到8.0,php需要做哪些准备工作?

换句话说,升级过的朋友遇到过哪些坑呢?
目前我总结了两个:

  1. mysql8.0默认字符集为utfmb4,现有的php连接配置、mysql库、表、字段字符集混乱,一不小心容易导致字符集不一致的连表报错。
    解决办法:统一修正到utfmb4,需要重建索引,或者继续现在的状态,但是创建新表的时候尤其要注意字符集与现有的库、表、字段一致。
  2. mysql8.0的密码插件变更为caching_sha2_password,php5.6连接会报错
    解决办法:由于cms的php5.6无法升级,且php7.2之后支持caching_sha2_password,所以mysql8.0的密码插件只能改为mysql_native_password。
梦想星辰大海
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

有单元测试升级就方便, 否则需要搭建 测试环境运行一段时间测试,也不能保证 100% 没问题

7个月前 评论
梦想星辰大海 (楼主) 7个月前
kis龍 (作者) 7个月前
讨论数量: 7

没把握的话除了新项目不升级,,

7个月前 评论

有单元测试升级就方便, 否则需要搭建 测试环境运行一段时间测试,也不能保证 100% 没问题

7个月前 评论
梦想星辰大海 (楼主) 7个月前
kis龍 (作者) 7个月前

百密一疏,还是需要测试环境全流程跑下比较合适。

7个月前 评论

1.Mysql函数是否使用了Mysql8废弃或者变更的函数 2.数据库字段时间默认0000-00-00... 这种无法添加

7个月前 评论

PHP 不用做啥工作。让运维在测试机上升,升完让测试组跑测试, 出问题了就修,没出问题皆大欢喜。 向组长申请2天的零食和加班,然后看球赛吃鸡爪。

7个月前 评论

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