• 用SQLYog导出导入数据所遇到的问题


    昨天公司想要将一个数据库的数据导出再导入到另外一个数据库里面,SQLYog已经具有了这个功能呢,所以本以为直接按两下键就可以搞定了。不过用这个导出的时候没有任何问题,但是在导入到另外一个数据库的时候老是出现问题,查看了一下Error Log 发现是因为不能创建某些表因为外键引用出现问题从而导致整个Dump失败,尝试了数次之后发现还是不行,之后就直接用Mysql提供的命令来搞,没有问题,命令如下:

    Java代码 复制代码
    1. mysqldump -h somehost -u root -p --opt --databases some_db --single-transaction --flush-logs > d:/dumpfile.sql  
    mysqldump -h somehost -u root -p --opt --databases some_db --single-transaction --flush-logs > d:/dumpfile.sql


    运行这个命令后,登陆Mysql,再用命令

    Java代码 复制代码
    1. msyql>source d:/dumpfile.sql  
    msyql>source d:/dumpfile.sql


    这时候如果用SQLYog导入数据也没有问题的,可能是它在导出的Sql文件当中,表的创建顺序产生了问题出现外键引用出错。
    为什么用SQLYog导出数据的时候会出现问题,而用以上命令却没有。不知道各位有没有类似经验。

    后来发现好像是因为数据文件太大了,超过了max_allowed_packet上限,导致导入失败。要想导入数据量大的文件,要将这个变量的上限改大一点,方法如下:

    Java代码 复制代码
    1. set global max_allowed_packet=10000000;   
    2. set global net_buffer_length=10000;   
    3.   
    4.   
    5. 第一个变量的描述是:The maximum packet length to send to or receive from the server. (Default value is 16MB.)    
    6.   
    7. 第二个变量的是:The buffer size for TCP/IP and socket communication. (Default value is 16KB.)   
  • 相关阅读:
    Objective-C Collection was mutated while being enumerated crash
    C++ assert断言
    Objective-C 禁用NSMenu中的系统services菜单项
    django----命令
    django----admin源码流程
    django----admin
    django----利用Form 实现两次密码输入是否一样 ( 局部钩子和全局钩子 )
    django----基于Form组件实现的增删改和基于ModelForm实现的增删改
    java----面试题
    课外知识----ini
  • 原文地址:https://www.cnblogs.com/cy163/p/1771438.html
Copyright © 2020-2023  润新知