分享

高版本数据库sql文件导入低版本数据库问题解决(mysql)

 hncdman 2023-05-12 发布于湖南

今天,部署测试环境,迁移数据库数据时,发生了以下问题:

公司的数据库mysql8.0版本,而我测试环境的数据库则是5.7版本

从公司导出的数据库sql文件,导入测试环境数据库时发生了报错

以下是本人一系列的解决方法

第一步:

使用Navicat工具

 

 

 

此时,我们将上面导出的文件,导入我们测试环境的数据库,如下:

 

运行后发现报错了,我们看一下报错信息

原因是数据库排序规则的问题,MySQL 5.7使用的默认为utf8mb4_unicode_ci,但是从MySQL8.0开始使用的已经改成utf8mb4_0900_ai_ci

解决方法:

打开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

重启后即可解决

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多