【问题标题】:ERROR 1064 (42000) MySQL when inside a shell script [duplicate]错误 1064 (42000) MySQL 在 shell 脚本中时 [重复]
【发布时间】:2014-04-01 11:42:36
【问题描述】:

我有带有 mysql 命令的 shell 脚本,我得到 ERROR 1064 (42000)。 MySQL 版本 (5.5.32)

#!/bin/ksh
#ALCO update
#Author:Umani

a=`date`

echo $a

mysql -u root << EOF
use test;
select offer_id,action_date from alco_offer_assign_history where offer_id='307' limit 10;
bye;


echo "Complete"

exit;

样本输出:

307 2/20/2014 14:40
307 2/20/2014 14:42
307 2/20/2014 14:42
307 2/20/2014 14:42

第 3 行的 ERROR 1064 (42000):您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“再见”附近使用的正确语法

【问题讨论】:

  • 我把“再见”从mysql会话中退出,也使用了“退出”。收到相同的输出。如果没有“再见”,则会出现以下错误...第 6 行出现错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的“echo "Complete" exit" 附近使用

标签: mysql ksh


【解决方案1】:

您应该在编写另一个shell命令之前关闭“EOF”并且不需要显式退出:

#!/bin/ksh
#ALCO update
#Author:Umani

a=`date`

echo $a

mysql -u root << EOF
use test;
select offer_id,action_date from alco_offer_assign_history where offer_id='307' limit 10;
EOF

echo "Complete"

exit;

【讨论】:

  • @web-tiki,感谢您的评论。我用工作示例编辑了答案
猜你喜欢
  • 2011-12-06
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
相关资源
最近更新 更多