今天,部署测试环境,迁移数据库数据时,发生了以下问题: 公司的数据库mysql8.0版本,而我测试环境的数据库则是5.7版本 从公司导出的数据库sql文件,导入测试环境数据库时发生了报错 以下是本人一系列的解决方法 第一步: 使用Navicat工具
此时,我们将上面导出的文件,导入我们测试环境的数据库,如下:
运行后发现报错了,我们看一下报错信息 原因是数据库排序规则的问题,MySQL 5.7使用的默认为 解决方法: 打开sql文件,把所有的utf8mb4_0900_ai_ci替换成utf8mb4_unicode_ci 最后我们重新导入试试: 导入成功,问题解决!!! 补充一点:期间还遇到一个问题 报错内容: 1153 - Got a packet bigger than 'max_allowed_packet' bytes原因:MySQL默认读取执行的SQL文件最大为16M,我这个文件是50多M的,所以出现了报错 解决方法: 找到服务器mysql安装目录下的my.cnf文件,一般会在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找 find / -name my.cnf 编辑文件,在文件内[mysqld]下面加上max_allowed_packet=400M 保存文件,并重启mysql service mysql restart 重启后即可解决 |
|