0

我对 Cygwin 很陌生,但我一直在使用 Windows 命令提示符来运行我的 MySQL 问题并毫无问题地处理外部 MySQL 查询。

我升级到 Cgywin,因为它只是一个更好的界面,有更多的选项。

我在这里调用了一个外部脚本:E:/dir/test.sql .. 当我在 MySQL CLI 下以相同的方式运行查询时,我想注意这个 test.sql 在 Windows 命令提示符下完美运行。MySQL 服务器已按预期安装并运行。

$ \. E:/dir/test.sql
-bash: SELECT: command not found
-bash: ,: command not found
-bash: ,: command not found
-bash: ,: command not found
-bash: ,: command not found
-bash: ,: command not found
-bash: ,: command not found
-bash: E:/dir/test.sql: line 9: syntax error near unexpected token `concat'
-bash: E:/dir/test.sql: line 9: `INSERT(concat(b.geo_state, replace("b.mtr", ' ', ''), 
 '

经过一番研究,我发现如果我运行:$ which mysql,我得到一个类似 linux 的路径:/usr/bin/mysql,我能想到的只是我的 mysql.exe 在不同的目录中,这可能是所有问题是。

但我不知道或找不到如何更改 MySQL 的默认 Cygwin 路径(如果这甚至是可能的原因。)。

4

2 回答 2

0

您的问题似乎是 bash 正在尝试运行您的脚本,而不是 mysql。

试着放

#!/usr/bin/mysql

在脚本的顶部。

不过,如果这真的有效,我会感到惊讶,因为至少在 Unixy 系统上,在 mysql 中运行 sql 脚本的正常方法是将它们通过管道传输到 mysql

mysql [options...] <test.sql

注意“<”字符。

我在 Windows 上使用 mysql 的经验很少,所以我不知道它是如何在 Windows 上工作的。

于 2012-08-04T07:09:10.947 回答
0

首先在 Cygwin 终端中输入 mysql 是否工作正常?!

一个。如果正确,请将您的脚本复制到 /home

湾。类型

     cd /home
     mysql < test.sql 

它一定会起作用的

于 2012-08-04T07:16:07.467 回答