运维打算将mysql从5.7升级到8.0,php需要做哪些准备工作?
换句话说,升级过的朋友遇到过哪些坑呢?
目前我总结了两个:
- mysql8.0默认字符集为utfmb4,现有的php连接配置、mysql库、表、字段字符集混乱,一不小心容易导致字符集不一致的连表报错。
解决办法:统一修正到utfmb4,需要重建索引,或者继续现在的状态,但是创建新表的时候尤其要注意字符集与现有的库、表、字段一致。 - mysql8.0的密码插件变更为caching_sha2_password,php5.6连接会报错
解决办法:由于cms的php5.6无法升级,且php7.2之后支持caching_sha2_password,所以mysql8.0的密码插件只能改为mysql_native_password。
有单元测试升级就方便, 否则需要搭建 测试环境运行一段时间测试,也不能保证 100% 没问题