记录一个navicat工具运行sql文件时遇到的坑:
错误如下:
[ERR] 1064 - 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 ';
1.首先将sql文件的内容复制出来,直接查询是没有问题的,那应该不是sql语句的问题。
2.然后使用notepad++查看sql文件右下角的字符编码:
与运行时选择的编码是一样的,那应该是也不是编码的问题。(注:不相同可点击notepad++上的编码->转为***编码;)
3.然后上网搜索解决办法,最后取消掉在每个运行中运行多个查询的勾选,终于运行通过了
总结:目前猜测是sql文件中有触发器和存储过程,因为删掉触发器和存储过程只留下了两个建表语句就没出问题
补上两个在搜索解决办法时遇到的两个相关的比较有用的sql语句:
SHOW VARIABLES LIKE 'char%'
查看客户端的字符集变量,不同客户端字符集不同,我电脑上的navicat与SQLyog就不同
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
设置各种字符集的编码