• mysqldump 导出的参数问题


    前段时间用mysqldump导出sql,由于不太熟悉mysqldump出现了一大堆问题,其中一个触发器导出问题折磨了我好久,这里记载下免得忘记。

    1 $cmd = "mysqldump.exe  --user=root --password=123456 --opt --skip-comments datas scheme >D:\sql\scheme.sql";
    2 system($cmd);

    这里导出datas数据库的scheme表的sql 去掉注释 也默认导出触发器,但用phpmyadmin 导入sql时(80多个表 10个表有触发器 wamp环境 php5.3.13 mysql5.5.24)老出现个别表导入报错,而且固定3个表的触发器无法导入(查看sql 文件能看到有触发器)而且报错行数也指向触发器。

    后面把导出参数换为

    --compact 去掉注释和头尾等结构。相当于选项:--skip-add-drop-table  --skip-add-locks --skip-comments --skip-disable-keys

    1 $cmd = "mysqldump.exe  --user=root --password=123456 --opt --compact datas scheme >D:\sql\scheme.sql";
    2 system($cmd);

    问题依旧没有得到解决,一度以为是数据或触发器出错了。

    于是抱着试一试的态度我把导出参数改了一下变为:

    1 $cmd = "mysqldump.exe  --user=root --password=123456 --opt --opt --skip-comments --skip-disable-keys --skip-set-charset datas scheme >D:\sql\scheme.sql";
    2 system($cmd);

    居然phpmyadmin 可以导入了 触发器也不少了。 问题解决但不清楚怎么回事难道是 --skip-set-charset ?

    这里记下。

  • 相关阅读:
    linux命令-ps
    solr参数说明
    CAP原理和BASE思想
    java多线程文件上传服务器
    swift的简介
    浅谈对【OSI七层协议】的理解
    手写简易WEB服务器
    JVM知识整理和学习(转载并修改)
    多线程学习笔记六
    多线程学习笔记五
  • 原文地址:https://www.cnblogs.com/keygle/p/2760705.html
Copyright © 2020-2023  润新知