运维打算将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。
梦想星辰大海
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

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

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

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

9个月前 评论

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

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

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

9个月前 评论

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

9个月前 评论

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

9个月前 评论

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