• 用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.)   
  • 相关阅读:
    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
    WCF快速上手(二)
    Oracle递归查询
    100多行代码实现6秒完成50万条多线程并发日志文件写入
    C#写日志工具类
    WPF定时刷新UI界面
    HttpUtil工具类
    WPF GridView的列宽度设置为按比例分配
    Visifire图表
    C# BackgroundWorker 的使用、封装
  • 原文地址:https://www.cnblogs.com/cy163/p/1771438.html
Copyright © 2020-2023  润新知