高版本mysql向低版本mysql导入数据

    xiaoxiao2021-03-25  99

    今天遇到一个需求,原先开发一个原型项目的时候是放在国外的服务器上面, 然后这个项目成熟了之后想到国内来,提升页面浏览的速度.之前加载一个页面是这样的. 可以看见.这里的Content Download 居然到了20.87s 简直不可以忍受.

    然后排查问题发现,原因就是因为那个数据库是远程连接的数据库,在页面加载的时候,freemark也会循环去调用查询数据库的sql

    由于是远程连接的sql, 所以每次查询的时候,都要重新连接, 累计起来的耗时十分之大, 必须要用局域网里的数据库.

    所以目的转向了迁库就可以解决问题的局面

    但是,有个问题是, 当时开发的时候的mysql 库是5.6的.而生产库是5.5的版本.

    哈哈哈,然后我用navicat 里面的数据传输功能, 然后它居然给我报

    MySQL: Unknown character set: ‘utf8mb4

    我XXX 不都是UTF-8 吗,怎么就不能互转呢, 然后 搜索一下呗

    http://www.tuicool.com/articles/zAnEV3

    在这里我们了解到,关于emoji表情的话mysql的utf8是不支持,需要修改设置为utf8mb4,才能支持.. 原来是为了适配这个emoji表情.我了个乖乖,.

    好吧,解决办法当然也有

    方法1、升级数据库为Mysql5.5版本(如果是虚拟主机就不能用这个方法了)

    方法2、用SQL命令修改数据表的排序规则(默认编码)

    方法一 要升级的话,是需要重启.. 可是这个库可是生产库啊. 这个方案不行,

    那就用方法二了, 首先导出sql 文件 在navicat 里, 右键, 转储sql文件 , 数据与结构 . 就好了 然后用note ++ 全局替换掉里面的utf8mb4

    这下可以了吧. 右键!运行SQL文件!

    what hell?!! 又给我报错了.

    [Err] 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes

    max_allowed_packet 是个什么鬼,看起来像是一个mysql里的配置问题,

    我查查

    http://blog.csdn.net/ysyn1209/article/details/51170871

    这个博客说 会通过这个配置来限制传入数据库大小的数据 那就改呗 .

    用navicat ,,,居然没不能改, mysql -h10.0.0.1 -uroot -p123

    直接进命令行里改吧

    mysql –help | grep my.cnf

    show VARIABLES like ‘%max_allowed_packet%’;

    set global max_allowed_packet = 2*1024*1024*10

    然后运行,成功导入了!!

    转载请注明原文地址: https://ju.6miu.com/read-18940.html

    最新回复(0)