2014-07-13 16:18:41
来 源
中存储网
MySQL
前段时间用mysqldump导出sql,由于不太熟悉mysqldump出现了一大堆问题,其中一个触发器导出问题折磨了我好久,这里记载下免得忘记。1$cmd="mysqldump.exe--user=root--password=123456--opt--ski

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

1 $cmd = "mysqldump.exe  --user=root --password=123456 --opt --skip-comments datas scheme >D:sqlscheme.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:sqlscheme.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:sqlscheme.sql";
2 system($cmd);

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

这里记下。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。