如何强制 mysql.exe 以“交互”模式运行?

Upg*_*ave 5 mysql windows emacs cygwin

我想让 emacs sql-mysql 模式在 windows xp 中工作。我能够进入sql-mysql模式并成功连接到mysql数据库。问题是SQL缓冲区不显示“mysql>”提示符。换句话说,它不与 mysql.exe 交互。

我认为这是因为 mysql.exe 程序在 emacs 在幕后启动时进入“非交互”模式。

mysql 选项似乎没有任何帮助。

关于如何解决这个问题有什么想法吗?我可以看到这对于 emacs comint 模式与 Windows 中的其他命令行实用程序交互也是一个问题,所以也许有一个操作系统级别的解决方案?

小智 3

问题是 emacs 的内置终端使用管道与客户端进程通信。Mysql.exe 是本机 Windows 程序,因此 isatty() 实际上检查有问题的文件描述符/句柄是否是控制台。这在管道上失败,因此 mysql 进入批处理模式。我也看不到强制交互模式的方法。耻辱,因为实施起来可能是微不足道的。

在 xterm 或其他基于 Cygwin ptys 的终端中运行它会显示相同的问题,因为 Cygwin 的 pty 模拟基于 Windows 管道。