MySQL5.6导入数据时的错误分析

今天在导入mysqldump导出的数据的时候出现了一个奇怪的错误?


ERROR 1064 (42000) at line 13327: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1


打开文件的13327行,发现这个是一个触发器的SQL语句带有 /*! */ 不仔细看以为创建triggers失败

但是手工执行的时候确实这样子的:


mysql> /*!50003 CREATE*/ /*!50017 DEFINER=`appuser`@`%`*/ /*!50003 TRIGGER `b_admin_user_update` AFTER UPDATE ON `b_admin_user` FOR EACH ROW

    ->       INSERT INTO delta_b_admin_user(`user_id`,`username`, `password`, `salt`, `real_name`, `cell_phone`, `qq`, `phone`, `email`, `wangwang`, `created_time`, `last_login_time`, `last_login_ip`, `user_group_id`, `flag`, `parent_id`, `qr_code`)

    -> values

    -> (NEW.user_id,NEW.username, NEW.password, NEW.salt, NEW.real_name, NEW.cell_phone, NEW.qq, NEW.phone, NEW.email, NEW.wangwang, NEW.created_time, NEW.last_login_time, NEW.last_login_ip, NEW.user_group_id, NEW.flag, NEW.parent_id, NEW.qr_code); */;;

Query OK, 0 rows affected (0.01 sec)


ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1


这是执行成功了呢? 但还是报了个错误:(


经过查找,发现mysql在导入的时候有个参数是忽略错误继续执行后面的SQL知道整个文件执行完成


--force 这个参数,加上参数再导入一次


/usr/local/mysql-5.6/bin/mysql -uroot -p'pass' --force  < /usr/local/mysql-5.6/all.sql 

Warning: Using a password on the command line interface can be insecure.

ERROR 1064 (42000) at line 13327: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 13345: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 15612: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 15630: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 21753: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 21771: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1

ERROR 1064 (42000) at line 28734: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*/' at line 1


恩,确实没有退出。

之后又做了一个测试

在导出数据的时候不导出触发器,那么需要加上参数 --skip-triggers


再导入的时候就没有报错了

那么是不是mysql-5.6版本的关系么?

有待研究




     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/1752895,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值