首页 > 解决方案 > 无法通过 ssh 连接到 isql 到服务器

问题描述

我有一个安装了 isql 的服务器。我必须从本地服务器运行查询,该服务器首先对服务器执行 ssh 并连接到数据库并运行所需的查询 ( SELECT MID, NODE, dateformat(DATETIME,'yymmddhhnnss') as DT FROM EU_TAB WHERE DATETIME='2020-07-01')。但是数据库连接本身给了我以下消息:

在本地提示符下,我正在运行以下命令:

]# ssh user@xxx.xxx.xxx.xxx "isql -SWebDB -UMyID -PMyPWD -w2222" 

但我收到以下消息。而且它无法连接。

**********************************************
* unixODBC - isql                            *
**********************************************
* Syntax                                     *
*                                            *
*      isql DSN [UID [PWD]] [options]        *
*                                            *
* Options                                    *
*                                            *
* -b         batch.(no prompting etc)        *
* -dx        delimit columns with x          *
* -x0xXX     delimit columns with XX, where  *
*            x is in hex, ie 0x09 is tab     *
* -w         wrap results in an HTML table   *
* -c         column names on first row.      *
*            (only used when -d)             *
* -mn        limit column display width to n *
* -v         verbose.                        *
* -lx        set locale to x                 *
* -q         wrap char fields in dquotes     *
* -3         Use ODBC 3 calls                *
* -n         Use new line processing         *
* -e         Use SQLExecDirect not Prepare   *
* -k         Use SQLDriverConnect            *
* --version  version                         *
*                                            *
* Commands                                   *
*                                            *
* help - list tables                         *
* help table - list columns in table         *
* help help - list all help options          * 
*                                            *
* Examples                                   *
*                                            *
*      isql WebDB MyID MyPWD -w < My.sql     *
*                                            *
*      Each line in My.sql must contain      *
*      exactly 1 SQL command except for the  *
*      last line which must be blank (unless *
*      -n option specified).                 *
*                                            *
* Please visit;                              *
*                                            *
*      http://www.unixodbc.org               *
*      nick@lurcher.org                      *
*      pharvey@codebydesign.com              *
********************************************** 

我在这里做错了吗?

我想在本地提示符下运行这个查询,如下所示:

]# ssh user@xxx.xxx.xxx.xxx "isql -SWebDB -UMyID -PMyPWD -w2222 <<EOT SELECT MID, NODE, dateformat(DATETIME,'yymmddhhnnss') as DT FROM EU_TAB WHERE DATETIME='2020-07-01' go EOT"

在这里它应该根据查询给出结果。但是由于上述消息,我无法继续前进。如果它的写入格式在EOT.

标签: mysqlsqlsshisql

解决方案


isql正在向您显示使用图,因为您调用不正确。根据它显示的内容,您尝试使用的-S-U-P选项不存在(可能您习惯了不同版本的isql?),并且您希望运行:

]# ssh user@xxx.xxx.xxx.xxx "isql WebDB MyID MyPWD -w2222" 

推荐阅读